Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
System.Activities.Presentation.WorkflowItemsPresenter adalah jenis kunci dalam model pemrograman perancang WF yang memungkinkan pengeditan koleksi elemen yang terkandung. Sampel ini menunjukkan cara membangun perancang aktivitas yang menampilkan koleksi yang dapat diedit seperti itu.
Sampel WorkflowItemsPresenter menunjukkan:
Membuat perancang aktivitas kustom dengan System.Activities.Presentation.WorkflowItemsPresenter.
Membuat desainer aktivitas dengan tampilan yang terlipat dan tampilan yang diperluas.
Mengganti perancang default dalam aplikasi yang di-hosting ulang.
Menyiapkan, membangun, dan menjalankan sampel
Buka solusi sampel UsingWorkflowItemsPresenter.sln untuk C# atau untuk Visual Basic di Visual Studio.
Bangun dan jalankan solusinya.
Aplikasi perancang alur kerja yang dihosting ulang terbuka, dan Anda dapat menyeret aktivitas ke kanvas.
Contoh sorotan
Kode untuk sampel ini menunjukkan hal berikut:
Aktivitas yang sesuai untuk perancang:
ParallelPembuatan perancang aktivitas kustom dengan System.Activities.Presentation.WorkflowItemsPresenter. Beberapa hal yang perlu diperhatikan:
Perhatikan penggunaan pengikatan data WPF untuk mengikat ke
ModelItem.Branches.ModelItemadalah properti padaWorkflowElementDesigneryang mengacu pada objek dasar yang digunakan desainer, dalam hal ini,Parallelkami.WorkflowItemsPresenter.SpacerTemplate dapat digunakan untuk menempatkan visual untuk ditampilkan di antara masing-masing item dalam koleksi.
WorkflowItemsPresenter.ItemsPanel adalah templat yang dapat disediakan untuk menentukan tata letak item dalam koleksi. Dalam hal ini, digunakan panel tumpukan yang horizontal.
Contoh kode berikut ini menunjukkan ini.
<sad:WorkflowItemsPresenter HintText="Drop Activities Here" Items="{Binding Path=ModelItem.Branches}"> <sad:WorkflowItemsPresenter.SpacerTemplate> <DataTemplate> <Ellipse Width="10" Height="10" Fill="Black"/> </DataTemplate> </sad:WorkflowItemsPresenter.SpacerTemplate> <sad:WorkflowItemsPresenter.ItemsPanel> <ItemsPanelTemplate> <StackPanel Orientation="Horizontal"/> </ItemsPanelTemplate> </sad:WorkflowItemsPresenter.ItemsPanel> </sad:WorkflowItemsPresenter>Lakukan asosiasikan
DesignerAttributedengan jenisParalleldan keluarkan atribut yang telah dilaporkan.Pertama, daftarkan semua desainer default.
Berikut ini adalah contoh kode.
// register metadata (new DesignerMetadata()).Register(); RegisterCustomMetadata();' register metadata Dim metadata = New DesignerMetadata() metadata.Register() ' register custom metadata RegisterCustomMetadata()Kemudian, timpa paralel dalam metode
RegisterCustomMetadata.Kode berikut menunjukkan ini di C# dan Visual Basic.
void RegisterCustomMetadata() { AttributeTableBuilder builder = new AttributeTableBuilder(); builder.AddCustomAttributes(typeof(Parallel), new DesignerAttribute(typeof(CustomParallelDesigner))); MetadataStore.AddAttributeTable(builder.CreateTable()); }Sub RegisterCustomMetadata() Dim builder As New AttributeTableBuilder() builder.AddCustomAttributes(GetType(Parallel), New DesignerAttribute(GetType(CustomParallelDesigner))) MetadataStore.AddAttributeTable(builder.CreateTable()) End Sub
Terakhir, perhatikan penggunaan templat dan pemicu data yang berbeda untuk memilih templat yang sesuai berdasarkan
IsRootDesignerproperti .Berikut ini adalah contoh kode.
<sad:ActivityDesigner x:Class="Microsoft.Samples.CustomParallelDesigner" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:sad="clr-namespace:System.Activities.Design;assembly=System.Activities.Design" xmlns:sadv="clr-namespace:System.Activities.Design.View;assembly=System.Activities.Design"> <sad:ActivityDesigner.Resources> <DataTemplate x:Key="Expanded"> <StackPanel> <TextBlock>This is the Expanded View</TextBlock> <sad:WorkflowItemsPresenter HintText="Drop Activities Here" Items="{Binding Path=ModelItem.Branches}"> <sad:WorkflowItemsPresenter.SpacerTemplate> <DataTemplate> <Ellipse Width="10" Height="10" Fill="Black"/> </DataTemplate> </sad:WorkflowItemsPresenter.SpacerTemplate> <sad:WorkflowItemsPresenter.ItemsPanel> <ItemsPanelTemplate> <StackPanel Orientation="Horizontal"/> </ItemsPanelTemplate> </sad:WorkflowItemsPresenter.ItemsPanel> </sad:WorkflowItemsPresenter> </StackPanel> </DataTemplate> <DataTemplate x:Key="Collapsed"> <TextBlock>This is the Collapsed View</TextBlock> </DataTemplate> <Style x:Key="ExpandOrCollapsedStyle" TargetType="{x:Type ContentPresenter}"> <Setter Property="ContentTemplate" Value="{DynamicResource Collapsed}"/> <Style.Triggers> <DataTrigger Binding="{Binding Path=IsRootDesigner}" Value="true"> <Setter Property="ContentTemplate" Value="{DynamicResource Expanded}"/> </DataTrigger> </Style.Triggers> </Style> </sad: ActivityDesigner.Resources> <Grid> <ContentPresenter Style="{DynamicResource ExpandOrCollapsedStyle}" Content="{Binding}"/> </Grid> </sad: ActivityDesigner>