3

バックグラウンド

UiPath のコア アクティビティ セットにはない単純なアクションを実行する一連のカスタム アクティビティを作成しています。これらの活動を拡張して、私自身の画像処理と機械学習アルゴリズムの一部を含めることを計画しています。

現在、私は小さく始めて、添付ファイルの MailMessage を取り除く NativeActivity を作成しました。問題は、UiPath では次のようになることです。

ここに画像の説明を入力

問題

この活動を世に広めたいので、これよりももっと素敵に見せる必要があります。WorkFlow Foundation のアクティビティ デザインを行っているサイトを調べてみましたが、プロジェクトを正常にコンパイル、パッケージ化、およびインストールするたびに、上記と同じように見えます。アクティビティに以下の 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 にリンクする方法を、できれば段階的な解決策で説明できれば、それは素晴らしいことです!

4

1 に答える 1

2

あなたの役に立ちそうなものを見つけました。

ログ アクティビティのバリエーションを作成したかったのです。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 をアクティビティにリンクする方法についての質問には答えられないことは承知していますが、カスタム アクティビティのデフォルトの外観を回避するために、この情報が役立つ可能性があります。

于 2018-11-23T13:19:51.827 に答える