Der ActivityDesigner sollte auf die darunterliegende Aktivität abgestimmt sein.
- Auf die Aktivität greifen Sie über das ModelItem-Property zu.
- Das ExpressionTextBox-Control Ermöglicht die Eingabe von VB-Ausdrücken für In/Out-Argumente
- Aktivitäten werden über das DesignerAttribute mit dem Designer verknüpft.
Folgende Dinge sind zu beachten:
- Der Workflow-Designer sollte In-Argumente eingeben können, ohne dabei auf das Eigenschaften-Fenster zurückgreifen zu müssen.
- Alle für die Aktivität nötigen Argumente sollten im Designer eingegeben werden können.
- Die Reihenfolge der Argumente sollte deutlich sein : In-Argumente => In/Out-Argumente => Out-Argumente
- Labels und Beschreibungen der Argumente sollten lokalisiert verfügbar sein (Deutsch/Englisch).
- Der Inhalt des Controls sollte einklappbar sein (Content-Presenter).
Hinweis für VB:
- Namespaces werden in VB bei XAML Dateien nicht unterstützt, es wird für die Versionierung daher empfohlen die Version in den Namen einzubinden.
Image Removed
(ActivityDesigner in VisualStudio anlegen)
Codeblock |
---|
language | xml |
---|
title | Beispiel für einen ActivityDesigner C# |
---|
linenumbers | true |
---|
collapse | true |
---|
|
<sap:ActivityDesigner x:Class="Designer.HelloWorld.V01.HelloWorldDesigner"microsoftcomwinfx/xaml/presentationxwinfx2006xamlmchttp://schemas.openxmlformats.org/markup-compatibility/2006" dexpressionblend2008 localDesigner.HelloWorld.V01saphttp://schemas.microsoft.com/netfx/2009/xaml/activities/presentationxmlnsconvertersclr-namespace:System.Activities.Presentation.Converters;assembly=System.Activities.Presentationxmlnssystem"clr-namespace:System;assembly=mscorlib" mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800"><sap:ActivityDesigner.Resources> <ResourceDictionary>
Expression="
Anpassung des Designer an WMS über Resourcen aus der WmsActivityContracts.dll
Mit Hilfe der Klasse "Accantum.Wms.ActivityContracts.Theme.WmsActivityTheme" haben Sie Zugriff auf folgende Styles und Templates, die auch von anderen WMS-Aktivitäten genutzt werden.
Name | Beschreibung | TargetType / DataType |
---|
CollapsedTemplate | DataTemplate, für das Aussehen einer Aktivität, wenn sie zusammengeklappt ist. | - |
ActivityBodyStyle | Style |
.Triggers>
</Style>
</ResourceDictionary>
</sap:ActivityDesigner.Resources>
<ContentPresenter Style="{StaticResource ExpandOrCollapsedStyle}" Content="{Binding}"/>
</sap:ActivityDesigner> Codeblock |
---|
language | c# |
---|
title | Code Behind C# |
---|
linenumbers | true |
---|
collapse | true |
---|
|
namespace Designer.HelloWorld.V01
{
/// <summary>
/// Interaction logic for HelloWorld.xaml
/// </summary>
public partial class HelloWorldDesigner
{für Aktivitäten mit Body (wie z.B. If Aktivität) (Rahmen um die Unteraktivitäten) | Border |
WorkflowItemPresenterStyle | Style für Aktivitäten mit Body (wie z.B. If Aktivität) (WorkflowItemPresenter für die Unteraktivitäten) | WorkflowItemPresenter |
ActivityDesignerStyle | Style für alle WMS-Aktivitäten (WmsCodeActivity, WmsNativeActivity, WmsAsyncCodeActivity). Beinhaltet unter anderem den Style, wenn die Aktivität auskommentiert ist, | ActivityDesigner |
public HelloWorldDesigner()
{InitializeComponent(); }}
} Codeblock |
---|
language | xml |
---|
title | Beispiel für einen ActivityDesigner VB |
---|
linenumbers | true |
---|
collapse | true |
---|
|
<sap:ActivityDesigner x:Class="HelloWorldDesignerV01"http://schemas.microsoft.com/winfx/2006/xaml/presentationxmicrosoftcomwinfx/xaml"mcopenxmlformatsorg/markup-compatibility/2006"dexpressionblend2008localDesignerHelloWorldV01
xmlns:sap="http://schemas.microsoft.com/netfx/2009/xaml/activities/presentation"
sapvSystemActivitiesPresentationViewSystem.Activities.Presentationxmlns:converters="clr-namespace:System.Activities.Presentation.Converters;assembly=System.Activities.Presentationxmlns:system="clr-namespace:System;assembly=mscorlib" mc:Ignorable="dd:DesignHeight="450" d:DesignWidth="800"
Loaded="ActivityDesigner_Loaded"
<ResourceDictionary> <converters:ArgumentToExpressionConverter ArgumentToExpressionConverter/><DataTemplatex:Key="CollapsedTemplate"><LabelPadding="0"Foreground="#FF6D6D6D"FontStyle="Italic"HorizontalAlignment="Center"VerticalAlignment="Center"Content="ZumAnzeigen doppelklicken."/>DataTemplate><DataTemplatex:Key="ExpandTemplate" DataType="HelloWorldActivity:HelloWorldDesignerV01"><Grid><Grid.ColumnDefinitions><ColumnDefinitionWidth="Auto"/><ColumnDefinitionWidth="*"/></Grid.ColumnDefinitions><!--InArgumenteundEigenschaften...--> <!-- Text --Grid.RowGrid.Column0" Margin="0 10 0 0" Text="Text" ToolTip="Geben sie einen Text ein"/>
<sapv:ExpressionTextBox Margin40Column="1" OwnerActivity="{Binding ModelItem}"ExpressionType="system:String"Expression="{BindingModelItem.Text,Mode=TwoWay,Converter={StaticResourceArgumentToExpressionConverter},ConverterParameter=In}"/><!--OutArgumenteundEigenschaften ... --Grid>DataTemplate>
StaticResource
ExpandTemplate/>
</DataTrigger>
</Style.Triggers>
</Style></ResourceDictionary>
sap:ActivityDesigner.Resources>
<ContentPresenter Style="{StaticResource ExpandOrCollapsedStyle}" Content="{Binding}"/></sap:ActivityDesigner> Codeblock |
---|
language | vb |
---|
title | Code Behind VB |
---|
linenumbers | true |
---|
collapse | true |
---|
|
ImportsSystem.Activities.PresentationClassHelloWorldDesigner01InheritsActivityDesignerPrivateSubActivityDesigner_Loaded(sender As Object, e As RoutedEventArgs)
EndSub
End ClassTesten des Designers
Den Designer können Sie testen, indem Sie Ihrem Projekt eine Activity-Xaml-Datei hinzufügen. (New Item > Workflow > Activity)
Hier können Sie nach einem Build Ihre Aktivität mit Drag&Drop aus der Toolbar ziehen und Ihren Designer überprüfen. Über das Eigenschaftsfenster von VisualStudio können Sie die Eigenschaften der Aktivität einsehen.