【问题标题】:How Do I Make UiPath Custom Activities Look Good?如何让 UiPath 自定义活动看起来不错?
【发布时间】:2018-01-25 07:04:52
【问题描述】:

背景

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

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

问题

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

<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,最好采用逐步解决方案,那就太好了!

【问题讨论】:

    标签: c# xaml workflow-foundation uipath


    【解决方案1】:

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

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

    [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 中看起来像这样:

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

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

    【讨论】:

      猜你喜欢
      • 2011-05-03
      • 2016-01-31
      • 2019-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多