Erneutes Hosten von Designern
Dieses Thema gilt für Windows Workflow Foundation 4.
Das erneute Hosten des Designers ist ein allgemeines Szenario, das sich auf das Hosting des Entwurfszeichnungsbereichs des Workflows in einer benutzerdefinierten Anwendung bezieht. Die Hostinganwendung, mit der die meisten Personen vertraut sind, ist Visual Studio, es gibt jedoch eine Reihe von Szenarien, in denen das Anzeigen des Workflow-Designers in einer Anwendung hilfreich sein kann:
Das Überwachen von Anwendungen (die Schaffung von Möglichkeiten für einen Endbenutzer, den Prozess sowie Laufzeitdaten zum Prozess, z. B. die gerade aktiven Zustände, die kombinierten Ausführungszeitdaten oder andere Informationen zu einer Instanz des Workflows, visuell darzustellen).
Anwendungen, die es einem Benutzer ermöglichen, den Prozess mit einem beschränkten Satz von Aktivitäten anzupassen.
Zur Unterstützung dieser Anwendungstypen wird der Workflow-Designer als Bestandteil von .NET Framework ausgeliefert und kann in einer WPF-Anwendung oder in einer WinForms-Anwendung mit dem entsprechenden WPF-Hostingcode gehostet werden. Dieses Beispiel veranschaulicht Folgendes:
Erneutes Hosten des Workflow-Designers
Verwenden der neu gehosteten Toolbox und auch des Eigenschaftenrasters.
Erneutes Hosten des Workflow-Designers
In diesem Beispiel wird veranschaulicht, wie das WPF-Layout so erstellt wird, dass es den Designer enthält, wie im folgenden Rasterlayout dargestellt (der Toolboxcode wurde aus Platzgründen weggelassen). Beachten Sie die Benennung der Rahmen, die den Designer und das Eigenschaftenraster enthalten.
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="7*"/>
<ColumnDefinition Width="3*"/>
</Grid.ColumnDefinitions>
<Border Grid.Column="0">
<sad:ToolboxControl> ... </sad:ToolboxControl>
</Border>
<Border Grid.Column="1" Name="DesignerBorder"/>
<Border Grid.Column="2" Name="PropertyBorder"/>
</Grid>
Im Beispiel wird dann der Designer erstellt und seine primäre View und PropertyInspectorView dem entsprechenden Container in der Benutzeroberfläche zugeordnet. Im folgenden Beispiel gibt es einige zusätzliche Codezeilen, die einer Erläuterung bedürfen. Der Register-Aufruf ist erforderlich, um die Standardaktivitätsdesigner für die Aktivitäten zuzuordnen, die im Lieferumfang von .NET Framework enthalten sind. Load wird aufgerufen, um das zu bearbeitende WF-Element zu übergeben. Schließlich werden die View (primärer Zeichnungsbereich) und die PropertyInspectorView (Eigenschaftenraster) auf der Benutzeroberfläche platziert.
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;
}
Verwenden der neu gehosteten Toolbox
In diesem Beispiel wird das neu gehostete Toolboxsteuerelement deklarativ in XAML verwendet. Beachten Sie, dass in Code ein Typ an den ToolBoxItemWrapper-Konstruktor übergeben werden kann.
<Window.Resources>
<sys:String x:Key="AssemblyName">System.Activities.Core, 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">
<sad:ToolboxControl>
<sad:ToolboxControl.Categories>
<sad:ToolboxItemCategory CategoryName="Basic">
<sad:ToolboxItemWrapper AssemblyName="{StaticResource AssemblyName}" >
<sad:ToolboxItemWrapper.ToolName>
System.Activities.Core.Sequence
</sad:ToolboxItemWrapper.ToolName>
</sad:ToolboxItemWrapper>
<sad:ToolboxItemWrapper AssemblyName="{StaticResource AssemblyName}">
<sad:ToolboxItemWrapper.ToolName>
System.Activities.Core.WriteLine
</sad:ToolboxItemWrapper.ToolName>
</sad:ToolboxItemWrapper>
<sad:ToolboxItemWrapper AssemblyName="{StaticResource AssemblyName}">
<sad:ToolboxItemWrapper.ToolName>
System.Activities.Core.If
</sad:ToolboxItemWrapper.ToolName>
</sad:ToolboxItemWrapper>
<sad:ToolboxItemWrapper AssemblyName="{StaticResource AssemblyName}">
<sad:ToolboxItemWrapper.ToolName>
System.Activities.Core.While
</sad:ToolboxItemWrapper.ToolName>
</sad:ToolboxItemWrapper>
</sad:ToolboxItemCategory>
</sad:ToolboxControl.Categories>
</sad:ToolboxControl>
Verwenden des Beispiels
Öffnen Sie die Projektmappe DesignerRehosting.sln in Visual Studio 2010.
Drücken Sie F5, um die Anwendung zu kompilieren und auszuführen.
Eine WPF-Anwendung beginnt mit einem neu gehosteten Designer.
Hinweis: |
---|
Die Beispiele sind möglicherweise bereits auf dem Computer installiert. Überprüfen Sie das folgende (standardmäßige) Verzeichnis, bevor Sie den Vorgang fortsetzen.
<InstallDrive>:\WF_WCF_Samples
Wenn dieses Verzeichnis nicht vorhanden ist, rufen Sie Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF) Samples for .NET Framework 4 auf, um alle Windows Communication Foundation (WCF)- und WF-Beispiele herunterzuladen. Dieses Beispiel befindet sich im folgenden Verzeichnis.
<InstallDrive>:\WF_WCF_Samples\WF\Basic\DesignerRehosting\Basic
|