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

简介:

原文地址:

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模拟平台测试扩散模型,发现其在分布内表现优异,但在分布外和组合泛化上存在不足,揭示了基于案例的泛化和特征优先级机制。这表明,仅靠视觉数据难以学习到真正的物理规律,未来需引入物理先验知识以提升模型性能。
409 16
|
Java API 开发者
Java的变革风暴:Lambda表达式与函数式编程如何颠覆你的代码世界
【8月更文挑战第7天】Java 8引入了Lambda表达式和函数式编程,显著增强了代码的简洁性和可读性。Lambda表达式作为匿名函数,简化了集合操作和事件处理等场景。其基本语法包括参数、箭头及表达式主体。结合Java 8的Stream API,开发者能以声明式风格处理数据,如筛选和转换集合,无需显式循环或条件判断,使得代码更清晰、高效。这些新特性丰富了Java的编程模型,提升了开发效率,并有助于代码的维护。
188 1
7.1.5 EXT2/EXT3/EXT4 文件的存取与日志式文件系统的功能
7.1.5 EXT2/EXT3/EXT4 文件的存取与日志式文件系统的功能
248 0
|
13天前
|
人工智能 JSON 供应链
畅用7个月无影 JVS Claw |手把手教你把JVS改造成「科研与产业地理情报可视化大师」
LucianaiB分享零成本畅用JVS Claw教程(学生认证享7个月使用权),并开源GeoMind项目——将JVS改造为科研与产业地理情报可视化AI助手,支持飞书文档解析、地理编码与腾讯地图可视化,助力产业关系图谱构建。
23480 11
畅用7个月无影 JVS Claw |手把手教你把JVS改造成「科研与产业地理情报可视化大师」
|
16天前
|
人工智能 缓存 BI
Claude Code + DeepSeek V4-Pro 真实评测:除了贵,没别的毛病
JeecgBoot AI专题研究 把 Claude Code 接入 DeepSeek V4Pro,跑完 Skills —— OA 审批、大屏、报表、部署 5 大实战场景后的真实体验 ![](https://oscimg.oschina.net/oscnet/up608d34aeb6bafc47f
5369 20
Claude Code + DeepSeek V4-Pro 真实评测:除了贵,没别的毛病
|
18天前
|
人工智能 JSON BI
DeepSeek V4 来了!超越 Claude Sonnet 4.5,赶紧对接 Claude Code 体验一把
JeecgBoot AI专题研究 把 Claude Code 接入 DeepSeek V4Pro 的真实体验与避坑记录 本文记录我将 Claude Code 对接 DeepSeek 最新模型(V4Pro)后的真实体验,测试了 Skills 自动化查询和积木报表 AI 建表两个场景——有惊喜,也踩
6408 16
|
6天前
|
人工智能 缓存 Shell
Claude Code 全攻略:命令大全 + 实战工作流(完整版)
Claude Code 是一款运行在终端环境下的 AI 编码助手,能够直接在项目目录中理解代码结构、编辑文件、执行命令、执行开发计划,并支持持久化记忆、上下文压缩、后台任务、多模型切换等专业能力。对于日常开发、项目维护、快速重构、代码审查等场景,它可以大幅减少手动操作、提升编码效率。本文从常用命令、界面模式、核心指令、记忆机制、图片处理、进阶工作流等维度完整说明,帮助开发者快速上手并稳定使用。
1491 3

热门文章

最新文章