创建嵌套自定义 WPF Activity 并执行嵌套 activity
Create nested custom WPF Activity and execute nested activity
我正在尝试创建一个范围以包含一组使用 C# 和 WPF 的活动,以便在 UiPath 中使用。
我可以使用以下 class
创建自定义 activity
using System.Activities;
namespace Custom_Activities
{
public sealed class Scoped_Activity : Scoped_Activity_Template
{
protected override void Execute(CodeActivityContext context)
{
System.Console.WriteLine("Custom Activity Executing");
}
}
}
并且我可以使用下面的 class
创建一个范围来包含这个 activity
using System.Activities;
namespace Custom_Activities
{
public class Custom_Activity_Scope : CodeActivity
{
protected override void Execute(CodeActivityContext context)
{
System.Console.WriteLine("Scope Executing");
}
}
}
和下面的设计器文件
<sap:ActivityDesigner
x:Class="Custom_Activities.Custom_Activity_Scope_Designer"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sapc="clr-namespace:System.Activities.Presentation.Converters;assembly=System.Activities.Presentation"
xmlns:sapv="clr-namespace:System.Activities.Presentation.View;assembly=System.Activities.Presentation"
xmlns:sap="clr-namespace:System.Activities.Presentation;assembly=System.Activities.Presentation"
xmlns:s="clr-namespace:System;assembly=mscorlib">
<sap:ActivityDesigner.Resources>
<ResourceDictionary x:Uid="ResourceDictionary_1">
<sapc:ArgumentToExpressionConverter x:Key="ArgumentToExpressionConverter" />
<sapc:ModelToObjectValueConverter x:Key="ModelToObjectValueConverter" />
<DataTemplate x:Key="Collapsed">
</DataTemplate>
<DataTemplate x:Key="Expanded">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition />
</Grid.RowDefinitions>
<sap:WorkflowItemPresenter Grid.Row="0" Grid.Column="0" Margin="5" />
</Grid>
</DataTemplate>
<Style x:Key="ExpandOrCollapsedStyle" TargetType="{x:Type ContentPresenter}">
<Setter Property="ContentTemplate" Value="{DynamicResource Expanded}" />
<Style.Triggers>
<DataTrigger Binding="{Binding Path=ShowExpanded}" Value="false">
<Setter Property="ContentTemplate" Value="{DynamicResource Collapsed}" />
</DataTrigger>
</Style.Triggers>
</Style>
</ResourceDictionary>
</sap:ActivityDesigner.Resources>
<Grid>
<ContentPresenter Style="{DynamicResource ExpandOrCollapsedStyle}" Content="{Binding}" />
</Grid>
</sap:ActivityDesigner>
当我 运行 Scoped_Activity
我得到了想要的输出(日志消息说 'Custom Activity Executing')
当我 运行 Custom_Activity_Scope
我得到了想要的输出(日志消息说 'Scope Executing')
然而,当我将 Scoped_Activity
放在 Custom_Activity_Scope
中时,我只收到消息 'Scope Executing',因此 Scoped_Activity
似乎没有执行。
我不太确定我的下一步应该是在 Custom_Activity_Scope
内执行 Scoped_Activity
在此处(在评论之一之后)您可以找到不错的解决方案:
Windows Workflow Custom Sequence Activity
我还没有运行-它,但确实在 VS2017 中尝试过它并且它的行为符合预期。
唯一的问题是找出正确的程序集引用。
在 System.Activities 和 System.Activities.Presentation 旁边,参考 System.Activities.Core.Presentation 是必需的。
我正在尝试创建一个范围以包含一组使用 C# 和 WPF 的活动,以便在 UiPath 中使用。
我可以使用以下 class
创建自定义 activityusing System.Activities;
namespace Custom_Activities
{
public sealed class Scoped_Activity : Scoped_Activity_Template
{
protected override void Execute(CodeActivityContext context)
{
System.Console.WriteLine("Custom Activity Executing");
}
}
}
并且我可以使用下面的 class
创建一个范围来包含这个 activityusing System.Activities;
namespace Custom_Activities
{
public class Custom_Activity_Scope : CodeActivity
{
protected override void Execute(CodeActivityContext context)
{
System.Console.WriteLine("Scope Executing");
}
}
}
和下面的设计器文件
<sap:ActivityDesigner
x:Class="Custom_Activities.Custom_Activity_Scope_Designer"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sapc="clr-namespace:System.Activities.Presentation.Converters;assembly=System.Activities.Presentation"
xmlns:sapv="clr-namespace:System.Activities.Presentation.View;assembly=System.Activities.Presentation"
xmlns:sap="clr-namespace:System.Activities.Presentation;assembly=System.Activities.Presentation"
xmlns:s="clr-namespace:System;assembly=mscorlib">
<sap:ActivityDesigner.Resources>
<ResourceDictionary x:Uid="ResourceDictionary_1">
<sapc:ArgumentToExpressionConverter x:Key="ArgumentToExpressionConverter" />
<sapc:ModelToObjectValueConverter x:Key="ModelToObjectValueConverter" />
<DataTemplate x:Key="Collapsed">
</DataTemplate>
<DataTemplate x:Key="Expanded">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition />
</Grid.RowDefinitions>
<sap:WorkflowItemPresenter Grid.Row="0" Grid.Column="0" Margin="5" />
</Grid>
</DataTemplate>
<Style x:Key="ExpandOrCollapsedStyle" TargetType="{x:Type ContentPresenter}">
<Setter Property="ContentTemplate" Value="{DynamicResource Expanded}" />
<Style.Triggers>
<DataTrigger Binding="{Binding Path=ShowExpanded}" Value="false">
<Setter Property="ContentTemplate" Value="{DynamicResource Collapsed}" />
</DataTrigger>
</Style.Triggers>
</Style>
</ResourceDictionary>
</sap:ActivityDesigner.Resources>
<Grid>
<ContentPresenter Style="{DynamicResource ExpandOrCollapsedStyle}" Content="{Binding}" />
</Grid>
</sap:ActivityDesigner>
当我 运行 Scoped_Activity
我得到了想要的输出(日志消息说 'Custom Activity Executing')
当我 运行 Custom_Activity_Scope
我得到了想要的输出(日志消息说 'Scope Executing')
然而,当我将 Scoped_Activity
放在 Custom_Activity_Scope
中时,我只收到消息 'Scope Executing',因此 Scoped_Activity
似乎没有执行。
我不太确定我的下一步应该是在 Custom_Activity_Scope
Scoped_Activity
在此处(在评论之一之后)您可以找到不错的解决方案: Windows Workflow Custom Sequence Activity
我还没有运行-它,但确实在 VS2017 中尝试过它并且它的行为符合预期。
唯一的问题是找出正确的程序集引用。 在 System.Activities 和 System.Activities.Presentation 旁边,参考 System.Activities.Core.Presentation 是必需的。