Dela via


Anpassade kompositutformare – Presentatör av arbetsflödeskomponent

WorkflowItemPresenter är en nyckeltyp i WF-designerns programmeringsmodell som gör det möjligt att skapa en "släppzon" där en godtycklig aktivitet kan placeras. Det här exemplet visar hur du skapar en aktivitetsdesigner som visar en sådan "släppzon".

Exemplet WorkflowItemPresenter visar:

  • Skapa en anpassad aktivitetsdesigner med en WorkflowItemPresenter.

  • Registrera den anpassade designern med hjälp av metadatalagret.

  • Programmering av den omvärdade verktygslådan deklarativt och imperativt.

Exempelinformation

Koden för det här exemplet visar:

  • Den anpassade aktivitetsdesignern har skapats för SimpleNativeActivity klassen.

  • Skapa en anpassad aktivitetsdesigner med hjälp av WorkflowItemPresenter.

<sap:ActivityDesigner x:Class="Microsoft.Samples.UsingWorkflowItemPresenter.SimpleNativeDesigner"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:sap="clr-namespace:System.Activities.Presentation;assembly=System.Activities.Presentation"
    xmlns:sapv="clr-namespace:System.Activities.Presentation.View;assembly=System.Activities.Presentation">
    <sap:ActivityDesigner.Resources>
        <DataTemplate x:Key="Collapsed">
            <StackPanel>
                <TextBlock>This is the collapsed view</TextBlock>
            </StackPanel>
        </DataTemplate>
        <DataTemplate x:Key="Expanded">
            <StackPanel>
                <TextBlock>Custom Text</TextBlock>
                <sap:WorkflowItemPresenter Item="{Binding Path=ModelItem.Body, Mode=TwoWay}"
                                        HintText="Please drop an activity here" />
            </StackPanel>
        </DataTemplate>
        <Style x:Key="ExpandOrCollapsedStyle" TargetType="{x:Type ContentPresenter}">
            <Setter Property="ContentTemplate" Value="{DynamicResource Collapsed}"/>
            <Style.Triggers>
                <DataTrigger Binding="{Binding Path=ShowExpanded}" Value="true">
                    <Setter Property="ContentTemplate" Value="{DynamicResource Expanded}"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </sap:ActivityDesigner.Resources>
    <Grid>
        <ContentPresenter Style="{DynamicResource ExpandOrCollapsedStyle}" Content="{Binding}" />
    </Grid>
</sap:ActivityDesigner>

Observera användningen av WPF-databindning för att binda till ModelItem.Body. ModelItem är egenskapen på ActivityDesigner som refererar till det underliggande objekt som designern används för, i det här fallet SimpleNativeActivity.

Konfigurera, skapa och köra exemplet

  1. Öppna lösningen i Visual Studio.

  2. Tryck på F5 för att kompilera och köra programmet.

Se även