[译]更改自定义活动设计器上的图标

简介:

原文地址:

http://msmvps.com/blogs/theproblemsolver/archive/2010/01/25/changing-the-icon-on-a-custom-activity-designer.aspx 

本文内容基于.NET Framework 4.0 Beta2 

当我们创建一个自定义活动设计器的时候,更改它的图标往往是第一件我们想做的事情。这点在WF4中并不难,假如我们有如下一个简单的WriteLine活动:

[Designer(typeof(MyWriteLineDesigner))]

public sealed class MyWriteLine : CodeActivity

{   

    // Define an activity input argument of type string   

    public InArgument<string> Text { get; set; }    

    // If your activity returns a value, derive from CodeActivity<TResult>   

    // and return the value from the Execute method.   

    protected override void Execute(CodeActivityContext context)   

    {       

        // Obtain the runtime value of the Text input argument       

        string text = context.GetValue(this.Text);       

        Console.WriteLine(text);  

    }

}

使用Designer属性将我们自己的设计器附加到上面的活动上,下面是标准的设计器:

<sap:ActivityDesigner x:Class="WorkflowConsoleApplication10.MyWriteLineDesigner1"

    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

    xmlns:sap="clr-namespace:System.Activities.Presentation;assembly=System.Activities.Presentation"

    xmlns:sapv="clr-namespace:System.Activities.Presentation.View;assembly=System.Activities.Presentation">

    <Grid>       

    </Grid>

</sap:ActivityDesigner>

将该活动拖到工作流设计器中,我们可以看到如下:

clip_image002

目前为止所有都很顺利,现在我们要改变设计器左上角的图标,设计器有Icon属性,但不幸的是现在我们在属性窗格还不能做任何事情。

clip_image004

为了更改图标我们需要添加一些xaml告诉设计器画什么,代码如下:

<sap:ActivityDesigner x:Class="WorkflowConsoleApplication10.MyWriteLineDesigner1"

    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

    xmlns:sap="clr-namespace:System.Activities.Presentation;assembly=System.Activities.Presentation"

    xmlns:sapv="clr-namespace:System.Activities.Presentation.View;assembly=System.Activities.Presentation">

    <sap:ActivityDesigner.Icon>

        <DrawingBrush>

            <DrawingBrush.Drawing>

                <ImageDrawing>

                    <ImageDrawing.Rect>

                        <Rect Location="0,0" Size="16,16" ></Rect>

                    </ImageDrawing.Rect>

                    <ImageDrawing.ImageSource>

                        <BitmapImage UriSource="Clipboard_edit.png" ></BitmapImage>

                    </ImageDrawing.ImageSource>

                </ImageDrawing>

            </DrawingBrush.Drawing>

        </DrawingBrush>

    </sap:ActivityDesigner.Icon>

    <Grid>       

    </Grid>

</sap:ActivityDesigner>

 

sap:ActivityDesigner.Icon元素内部我们添加了一个DrawingBrush,并使用BitmapImage指向一个文件。文件clipboard_edit.png的生成操作属性已经被设置为“Resource”,如下:

clip_image006 clip_image008

项目重新生成后,工作流设计器中的图标就变为新的图标了,如下:

clip_image010

 

 

本文转自生鱼片博客园博客,原文链接:http://www.cnblogs.com/carysun/archive/2010/01/26/WF4-ActivityDesigner-Icon.html,如需转载请自行联系原作者

 

相关文章
|
Unix 索引
生信教程 | 基于PSMC估计有效群体大小
生信教程 | 基于PSMC估计有效群体大小
|
机器学习/深度学习 测试技术
LeCun赞转!类Sora模型能否理解物理规律?字节豆包大模型团队系统性研究揭秘
近日,字节跳动豆包大模型团队发布论文,探讨视频生成模型(如类Sora模型)在理解物理规律方面的能力,引起广泛关注并获Yann LeCun点赞。研究通过2D模拟平台测试扩散模型,发现其在分布内表现优异,但在分布外和组合泛化上存在不足,揭示了基于案例的泛化和特征优先级机制。这表明,仅靠视觉数据难以学习到真正的物理规律,未来需引入物理先验知识以提升模型性能。
382 16
|
Java API 开发者
Java的变革风暴:Lambda表达式与函数式编程如何颠覆你的代码世界
【8月更文挑战第7天】Java 8引入了Lambda表达式和函数式编程,显著增强了代码的简洁性和可读性。Lambda表达式作为匿名函数,简化了集合操作和事件处理等场景。其基本语法包括参数、箭头及表达式主体。结合Java 8的Stream API,开发者能以声明式风格处理数据,如筛选和转换集合,无需显式循环或条件判断,使得代码更清晰、高效。这些新特性丰富了Java的编程模型,提升了开发效率,并有助于代码的维护。
182 1
7.1.5 EXT2/EXT3/EXT4 文件的存取与日志式文件系统的功能
7.1.5 EXT2/EXT3/EXT4 文件的存取与日志式文件系统的功能
232 0
|
15天前
|
人工智能 数据可视化 安全
王炸组合!阿里云 OpenClaw X 飞书 CLI,开启 Agent 基建狂潮!(附带免费使用6个月服务器)
本文详解如何用阿里云Lighthouse一键部署OpenClaw,结合飞书CLI等工具,让AI真正“动手”——自动群发、生成科研日报、整理知识库。核心理念:未来软件应为AI而生,CLI即AI的“手脚”,实现高效、安全、可控的智能自动化。
34797 40
王炸组合!阿里云 OpenClaw X 飞书 CLI,开启 Agent 基建狂潮!(附带免费使用6个月服务器)
|
9天前
|
人工智能 自然语言处理 安全
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
本文介绍了Claude Code终端AI助手的使用指南,主要内容包括:1)常用命令如版本查看、项目启动和更新;2)三种工作模式切换及界面说明;3)核心功能指令速查表,包含初始化、压缩对话、清除历史等操作;4)详细解析了/init、/help、/clear、/compact、/memory等关键命令的使用场景和语法。文章通过丰富的界面截图和场景示例,帮助开发者快速掌握如何通过命令行和交互界面高效使用Claude Code进行项目开发,特别强调了CLAUDE.md文件作为项目知识库的核心作用。
9870 30
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
|
4天前
|
人工智能 JavaScript Ubuntu
低成本搭建AIP自动化写作系统:Hermes保姆级使用教程,长文和逐步实操贴图
我带着怀疑的态度,深度使用了几天,聚焦微信公众号AIP自动化写作场景,写出来的几篇文章,几乎没有什么修改,至少合乎我本人的意愿,而且排版风格,也越来越完善,同样是起码过得了我自己这一关。 这个其实OpenClaw早可以实现了,但是目前我觉得最大的区别是,Hermes会自主总结提炼,并更新你的写作技能。 相信就冲这一点,就值得一试。 这篇帖子主要就Hermes部署使用,作一个非常详细的介绍,几乎一步一贴图。 关于Hermes,无论你赞成哪种声音,我希望都是你自己动手行动过,发自内心的选择!
1962 21
|
26天前
|
人工智能 JSON 机器人
让龙虾成为你的“公众号分身” | 阿里云服务器玩Openclaw
本文带你零成本玩转OpenClaw:学生认证白嫖6个月阿里云服务器,手把手配置飞书机器人、接入免费/高性价比AI模型(NVIDIA/通义),并打造微信公众号“全自动分身”——实时抓热榜、AI选题拆解、一键发布草稿,5分钟完成热点→文章全流程!
45683 155
让龙虾成为你的“公众号分身” | 阿里云服务器玩Openclaw
|
2天前
|
人工智能 自然语言处理 安全
下一篇
开通oss服务