Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Designer-omhysning är ett vanligt scenario som syftar på att hysa designarbetsytan för arbetsflöden i en anpassad applikation. Värdprogrammet som de flesta känner till är Visual Studio, men det finns ett antal scenarier där det kan vara användbart att visa arbetsflödesdesignern i ett program:
Övervaka program (så att en slutanvändare kan visualisera processen, samt körningsdata om processen, till exempel det aktuella aktiva tillståndet, aggregerade körningstidsdata eller annan information om en instans av arbetsflödet).
Program som gör det möjligt för en användare att anpassa processen med en begränsad uppsättning aktiviteter.
För att stödja dessa typer av program levereras arbetsflödesdesignern i .NET Framework och kan finnas i ett WPF-program eller i ett WinForms-program med lämplig WPF-värdkod. Exemplet DesignerRehosting visar:
Ändra värdmiljön för Windows Workflow-designern.
Använda den omhostade verktygslådan och egenskapsrutnätet.
Byta värd för designern
Det här exemplet visar hur du skapar WPF-layouten som ska innehålla designern, som visas i följande rutnätslayout (Verktygslådekod utelämnas för utrymmesproblem). Observera namngivningen av kantlinjerna som omger design- och egenskapsrutnätet.
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="7*"/>
<ColumnDefinition Width="3*"/>
</Grid.ColumnDefinitions>
<Border Grid.Column="0">
<sapt:ToolboxControl>...</sapt:ToolboxControl>
</Border>
<Border Grid.Column="1" Name="DesignerBorder"/>
<Border Grid.Column="2" Name="PropertyBorder"/>
</Grid>
Därefter skapar exemplet designern och associerar dess primära View och PropertyInspectorView med lämplig container i användargränssnittet. Det finns några ytterligare kodrader i följande exempel som förtjänar en förklaring. Anropet Register krävs för att associera standardutformare för aktivitet för de aktiviteter som tillhandahålls med .NET Framework. Load anropas för att skicka in det WF-objekt som ska redigeras. Slutligen placeras View (primär arbetsyta) och PropertyInspectorView (egenskapsrutnät) på ytan av användargränssnittet.
protected override void OnInitialized(EventArgs e)
{
base.OnInitialized(e);
// register metadata
(new DesignerMetadata()).Register();
// create the workflow designer
WorkflowDesigner wd = new WorkflowDesigner();
wd.Load(new Sequence());
DesignerBorder.Child = wd.View;
PropertyBorder.Child = wd.PropertyInspectorView;
}
Använda den överladdade verktygslådan
Det här exemplet använder den omvärdade verktygslådekontrollen deklarativt i XAML. Observera att i kod kan man skicka en typ till ToolboxItemWrapper konstruktorn.
<!-- Copyright (c) Microsoft Corporation. All rights reserved-->
<Window x:Class="Microsoft.Samples.DesignerRehosting.RehostingWfDesigner"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sapt="clr-namespace:System.Activities.Presentation.Toolbox;assembly=System.Activities.Presentation"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
Title="Window1" Height="600" Width="900">
<Window.Resources>
<sys:String x:Key="AssemblyName">System.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35</sys:String>
</Window.Resources>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="7*"/>
<ColumnDefinition Width="3*"/>
</Grid.ColumnDefinitions>
<Border Grid.Column="0">
<sapt:ToolboxControl>
<sapt:ToolboxCategory CategoryName="Basic">
<sapt:ToolboxItemWrapper AssemblyName="{StaticResource AssemblyName}" >
<sapt:ToolboxItemWrapper.ToolName>
System.Activities.Statements.Sequence
</sapt:ToolboxItemWrapper.ToolName>
</sapt:ToolboxItemWrapper>
<sapt:ToolboxItemWrapper AssemblyName="{StaticResource AssemblyName}">
<sapt:ToolboxItemWrapper.ToolName>
System.Activities.Statements.WriteLine
</sapt:ToolboxItemWrapper.ToolName>
</sapt:ToolboxItemWrapper>
<sapt:ToolboxItemWrapper AssemblyName="{StaticResource AssemblyName}">
<sapt:ToolboxItemWrapper.ToolName>
System.Activities.Statements.If
</sapt:ToolboxItemWrapper.ToolName>
</sapt:ToolboxItemWrapper>
<sapt:ToolboxItemWrapper AssemblyName="{StaticResource AssemblyName}">
<sapt:ToolboxItemWrapper.ToolName>
System.Activities.Statements.While
</sapt:ToolboxItemWrapper.ToolName>
</sapt:ToolboxItemWrapper>
</sapt:ToolboxCategory>
</sapt:ToolboxControl>
</Border>
<Border Grid.Column="1" Name="DesignerBorder"/>
<Border Grid.Column="2" Name="PropertyBorder"/>
</Grid>
</Window>
Använda exemplet
Öppna lösningen DesignerRehosting.sln i Visual Studio.
Tryck på F5 för att kompilera och köra programmet.
Ett WPF-program börjar med en omvärderad designer.