Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Přemístění návrhářského prostředí je běžný scénář, který se týká hostování pracovního plátna návrhu uvnitř vlastní aplikace. Hostitelská aplikace, kterou většina lidí zná, je Visual Studio, ale existuje řada scénářů, ve kterých může být užitečné zobrazit návrháře pracovních postupů v aplikaci:
Monitorování aplikací (umožňující koncovému uživateli vizualizovat proces a také data modulu runtime o procesu, jako je aktuálně aktivní stav, agregovaná data doby provádění nebo jiné informace o instanci pracovního postupu).
Aplikace, které uživateli umožňují přizpůsobit proces s omezenou sadou aktivit.
Pro podporu těchto typů aplikací je návrhář pracovních postupů součástí rozhraní .NET Framework a může být součástí aplikace WPF nebo aplikace WinForms s kódem WPF pro hostování. Ukázka DesignerRehosting ukazuje:
Změna hostitele návrháře WF
Použití rehodnoceného panelu nástrojů a tabulky vlastností.
Přemístění návrháře na jiného hostitele
Tato ukázka ukazuje, jak vytvořit rozložení WPF, které bude obsahovat návrháře, jak je vidět v následujícím rozložení mřížky (kód panelu nástrojů vynechán kvůli obavám o místo). Všimněte si pojmenování ohraničení, která obsahují návrháře a mřížku vlastností.
<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>
Potom ukázka vytvoří návrháře a přiřadí jeho primární View a PropertyInspectorView ke vhodnému kontejneru v uživatelském rozhraní. V následujícím příkladu je několik dalších řádků kódu, které si zaslouží vysvětlení. Volání Register je nutné k přidružení výchozích návrhářů aktivit pro aktivity dodávané s rozhraním .NET Framework. Load je volána pro předání položky WF, která má být upravena. Na plochu uživatelského rozhraní se nakonec umístí (primární plátno) View a (mřížka vlastností) PropertyInspectorView.
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;
}
Použití přehostovaného panelu nástrojů
Tato ukázka používá přemístěný ovládací prvek panelu nástrojů deklarativně v XAML. Všimněte si, že v kódu lze předat typ konstruktoru ToolboxItemWrapper .
<!-- 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>
Použití ukázky
Otevřete řešení DesignerRehosting.sln v sadě Visual Studio.
Stisknutím klávesy F5 aplikaci zkompilujte a spusťte.
Aplikace WPF začíná s integrovaným návrhářem.