Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
, System.Activities.Presentation.WorkflowItemsPresenter WF tasarımcısı programlama modelinde bulunan ve kapsanan öğelerden oluşan bir koleksiyonun düzenlenmesine olanak tanıyan bir anahtar türüdür. Bu örnek, düzenlenebilir bir koleksiyonu ortaya çıkaran bir etkinlik tasarımcısının nasıl oluşturulduğunu gösterir.
WorkflowItemsPresenter örneği aşağıdakileri gösterir:
System.Activities.Presentation.WorkflowItemsPresenter ile özel etkinlik tasarımcısı oluşturma.
"Daraltılmış" ve "genişletilmiş" görünüme sahip bir etkinlik tasarımcısı oluşturma.
Yeniden barındırılan bir uygulamada varsayılan tasarımcıyı geçersiz kılma.
Örneği ayarlama, derleme ve çalıştırma
Visual Studio'da C# veya Visual Basic için UsingWorkflowItemsPresenter.sln örnek çözümünü açın.
Çözümü derleyin ve çalıştırın.
Yeniden barındırılan bir iş akışı tasarımcısı uygulaması açılır ve etkinlikleri tuvale sürükleyebilirsiniz.
Örnek vurgular
Bu örneğin kodu aşağıdakileri gösterir:
Tasarımcının uzmanlaştığı etkinlik:
Parallelile System.Activities.Presentation.WorkflowItemsPresenterözel etkinlik tasarımcısı oluşturma. Dikkate almak için birkaç nokta:
WPF veri bağlamasının
ModelItem.Branchesile bağlanmasındaki kullanımına dikkat edin.ModelItemtasarımcının kullanılmakta olduğu temel nesneye atıfta bulunanWorkflowElementDesignerözelliğidir; bu durumda, bizimParallel., WorkflowItemsPresenter.SpacerTemplate koleksiyondaki tek tek öğeler arasında görüntülenecek bir görsel koymak için kullanılabilir.
WorkflowItemsPresenter.ItemsPanel koleksiyondaki öğelerin düzenini belirlemek için sağlanabilir bir şablondur. Bu durumda yatay yığın paneli kullanılır.
Aşağıdaki örnek kodda bu gösterilmektedir.
<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>DesignerAttributeöğesiniParalleltürüyle ilişkilendirin ve ardından bildirilen öznitelikleri çıkartın.İlk olarak, tüm varsayılan tasarımcıları kaydedin.
Kod örneği aşağıda verilmiştir.
// register metadata (new DesignerMetadata()).Register(); RegisterCustomMetadata();' register metadata Dim metadata = New DesignerMetadata() metadata.Register() ' register custom metadata RegisterCustomMetadata()Ardından
RegisterCustomMetadatayönteminde paralel işlemi geçersiz kılın.Aşağıdaki kod bunu C# ve Visual Basic'te gösterir.
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
Son olarak, özelliğine göre uygun şablonu seçmek için farklı veri şablonlarının ve tetikleyicilerin kullanıldığına
IsRootDesignerdikkat edin.Kod örneği aşağıda verilmiştir.
<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>