gpt4 book ai didi

c# - 如何使 UiPath 自定义事件看起来不错?

转载 作者:行者123 更新时间:2023-11-30 16:43:03 25 4
gpt4 key购买 nike

背景

我正在创建一组自定义事件,这些事件执行 UiPath 核心事件集中没有的简单操作。我计划扩展这些事件以包括我自己的一些图像处理和机器学习算法。

目前,我从小处着手并创建了一个 NativeActivity,它去除了 MailMessage 的附件。问题是在 UiPath 中它看起来像这样:

enter image description here

问题

我要传播这个事件,所以我真的需要让它看起来比这个好得多!我试过看 sites that do WorkFlow Foundation activity designs , 但每次我成功编译、打包和安装我的项目时,它看起来都和上面一样。我希望我的事件能够反射(reflect)以下 xaml 设计:

enter image description here

<sap:ActivityDesigner x:Class="LarcAI.MailActivityDesigner.MailActivity"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:s="clr-namespace:System;assembly=mscorlib"
xmlns:sap="clr-namespace:System.Activities.Presentation;assembly=System.Activities.Presentation"
xmlns:sapv="clr-namespace:System.Activities.Presentation.View;assembly=System.Activities.Presentation"
xmlns:sapc="clr-namespace:System.Activities.Presentation.Converters;assembly=System.Activities.Presentation"
xmlns:Model="clr-namespace:System.Activities.Presentation.Model;assembly=System.Activities.Presentation"
xmlns:MailActivityLibrary="clr-namespace:LarcAI.MailActivity;assembly=MailActivityLibrary">
<sap:ActivityDesigner.Resources>
<ResourceDictionary x:Uid="ResourceDictionary_1">
<sapc:ArgumentToExpressionConverter x:Key="ArgumentToExpressionConverter" />
<sapc:ModelToObjectValueConverter x:Key="ModelToObjectValueConverter" />

<DataTemplate x:Key="Collapsed">
<StackPanel Orientation="Horizontal">
<TextBlock VerticalAlignment="Center" HorizontalAlignment="Right" Grid.Row="0" Grid.Column="0" Margin="5" Text="Mail" />
<sapv:ExpressionTextBox HintText="Enter a VB Expression" Expression="{Binding Path=ModelItem.Text, Mode=TwoWay, Converter={StaticResource ArgumentToExpressionConverter}, ConverterParameter=In }" ExpressionType="s:String" Grid.Row="0" Grid.Column="1" OwnerActivity="{Binding Path=ModelItem}" Width="300" Margin="0,5" MaxLines="1" />
</StackPanel>
</DataTemplate>

<DataTemplate x:Key="Expanded">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>

<Grid.RowDefinitions>
<RowDefinition />
</Grid.RowDefinitions>

<TextBlock VerticalAlignment="Center" HorizontalAlignment="Right" Grid.Row="0" Grid.Column="0" Margin="5" Text="Mail" />
<sapv:ExpressionTextBox HintText="Enter a VB Expression" Expression="{Binding Path=ModelItem.Text, Mode=TwoWay, Converter={StaticResource ArgumentToExpressionConverter}, ConverterParameter=In }" ExpressionType="s:String" Grid.Row="0" Grid.Column="1" OwnerActivity="{Binding Path=ModelItem}" Width="300" Margin="0,5" MaxLines="1" />
</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>

<sap:ActivityDesigner.Icon>
<DrawingBrush>
<DrawingBrush.Drawing>
<ImageDrawing>
<ImageDrawing.Rect>
<Rect Location="0,0" Size="25,25" ></Rect>
</ImageDrawing.Rect>
<ImageDrawing.ImageSource>
<BitmapImage UriSource="Images/remove_attachment.png" />
</ImageDrawing.ImageSource>
</ImageDrawing>
</DrawingBrush.Drawing>
</DrawingBrush>
</sap:ActivityDesigner.Icon>

<Grid>
<ContentPresenter Style="{DynamicResource ExpandOrCollapsedStyle}" Content="{Binding}" />
</Grid>

帮助

如果有人可以解释如何将 xaml 文件链接到我的 NativeActivities,最好是逐步解决方案,那就太好了!

最佳答案

我发现了一些可能对你有帮助的东西。

我想创建一个日志事件的变体。如果我从 UiPath“日志消息”事件复制属性,然后将它们的 LogDesigner 类作为属性添加到我的类中,那么我的自定义事件的外观和感觉与 UiPath 在其 native 版本上的相同。

[Designer(typeof(UiPath.Core.Activities.Design.LogDesigner))]
public class LogMessage : CodeActivity, IRegisterMetadata
{
[Category("Input")]
public UiPath.Core.Activities.CurentLogLevel Level { get; set; }

[Category("Input")]
public InArgument<System.String> Message { get; set; }

[Category("Input")]
public InArgument<System.String> LogFilePath { get; set; }

所以我的事件现在在 UiPath Studio 中看起来像这样:

enter image description here

我突出显示了我添加到事件中的新属性(以表明它不是原始属性)。

我知道它没有回答您关于如何将自定义 xaml 链接到您的事件的问题,但也许此信息可能有助于避免自定义事件的默认外观。

关于c# - 如何使 UiPath 自定义事件看起来不错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45725389/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com