惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Microsoft Azure Blog
Microsoft Azure Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Webroot Blog
Webroot Blog
腾讯CDC
The Last Watchdog
The Last Watchdog
博客园 - 司徒正美
H
Hacker News: Front Page
I
InfoQ
A
Arctic Wolf
H
Hackread – Cybersecurity News, Data Breaches, AI and More
H
Heimdal Security Blog
L
LINUX DO - 最新话题
T
Threat Research - Cisco Blogs
宝玉的分享
宝玉的分享
Last Week in AI
Last Week in AI
Security Latest
Security Latest
D
DataBreaches.Net
C
Check Point Blog
J
Java Code Geeks
www.infosecurity-magazine.com
www.infosecurity-magazine.com
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Attack and Defense Labs
Attack and Defense Labs
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
L
Lohrmann on Cybersecurity
雷峰网
雷峰网
Vercel News
Vercel News
WordPress大学
WordPress大学
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Spread Privacy
Spread Privacy
Forbes - Security
Forbes - Security
阮一峰的网络日志
阮一峰的网络日志
Hacker News: Ask HN
Hacker News: Ask HN
大猫的无限游戏
大猫的无限游戏
I
Intezer
N
News and Events Feed by Topic
小众软件
小众软件
B
Blog RSS Feed
Help Net Security
Help Net Security
Google DeepMind News
Google DeepMind News
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - 三生石上(FineUI控件)
S
Security @ Cisco Blogs
美团技术团队
Recent Announcements
Recent Announcements
Martin Fowler
Martin Fowler
Engineering at Meta
Engineering at Meta
The GitHub Blog
The GitHub Blog
MyScale Blog
MyScale Blog
Recent Commits to openclaw:main
Recent Commits to openclaw:main

博客园 - chegan

历时半年,我将一个大型asp.net的零代码快速开发平台转成了java 用c#从头写一个AI agent,实现企业内部自然语言数据统计分析(三)--一个综合的例子 用c#从头写一个AI agent,实现企业内部自然语言数据统计分析(二)-数据结构和代码分析方法 用c#从头写一个AI agent,实现企业内部自然语言数据统计分析 像纸质笔记本一样给div,textarea添加行的分割线 基于视图的增删改查操作(颠覆传统思维吧) 恶劣的百度推广人员 javascript实现当前页面截屏 基于数据库的企业级智能表单系统设计(asp.net)-架构 基于数据库的企业级智能表单系统设计(asp.net)-序言 同时运行qq和360的方法(偶然发现的) http编程中的get和post混合使用方式 使用silverlight构建一个工作流设计器(二十)-增加标签(上) 自贺获得DEV-WOW 2009微软开发者大赛开发奖 使用silverlight构建一个工作流设计器(十九)-规则与活动的交点的平滑移动 使用silverlight构建一个工作流设计器(十八)-持久化数据到数据库—服务器段功能实现 使用silverlight构建一个工作流设计器(十七)-持久化数据到数据库—设计webservices接口 使用silverlight构建一个工作流设计器(十六)-持久化数据到数据库—数据库结构 抛论妄自菲薄与夜郎自大之砖,引国家软件发展道路之玉
使用silverlight构建一个工作流设计器(二十一)-增加标签(下)
chegan · 2009-09-11 · via 博客园 - chegan

源代码下载:http://www.shareidea.net/opensource.htm

在线演示:http://www.shareidea.net/workflow.htm

视频教程: http://www.shareidea.net/video/sharedesigner/sharedesigner.html

QQ群:85444465 

本文系列索引:   

使用silverlight构建一个工作流设计器(一)

使用silverlight构建一个工作流设计器(二)

使用silverlight构建一个工作流设计器(三)

使用silverlight构建一个工作流设计器(四)

使用silverlight构建一个工作流设计器(五)

使用silverlight构建一个工作流设计器(六)

使用silverlight构建一个工作流设计器(七)

使用silverlight构建一个工作流设计器(八)

使用silverlight构建一个工作流设计器(九)

使用silverlight构建一个工作流设计器(十)  

使用silverlight构建一个工作流设计器(十一)  

使用silverlight构建一个工作流设计器(十二)  

使用silverlight构建一个工作流设计器(十三)  

使用silverlight构建一个工作流设计器(十四)  

使用silverlight构建一个工作流设计器(十五)    

使用silverlight构建一个工作流设计器(十六) 

使用silverlight构建一个工作流设计器(十七) 

使用silverlight构建一个工作流设计器(十八) 

使用silverlight构建一个工作流设计器(十九) 

使用silverlight构建一个工作流设计器(二十) 

上节说到支持标签改名功能,本节继续增加以下功能:

l         支持选择,群组移动

l         支持粘贴、拷贝

l         支持删除

l         支持鼠标右键菜单

20.1支持选择,群组移动

为了支持标签选择,实现IsSelectd接口,如下所示:

Code

当用户选择标签的时候,更新标签颜色,并将标签对象加入到当前容器的“已选择”对象中,当用户取消选择时,重置标签颜色,并从容器对象中删除标签

为了支持标签群组移动,实现SetPositionByDisplacement接口,如下所示:

Code

这个接口根据位移来重新设置标签的位置。

20.2支持粘贴、拷贝

为了支持拷贝,需要实现Clone接口,如下所示:

public  Label Clone()
        {
            Label l 
= new Label(_container);
            l.LabelName 
= this.LabelName;
            l.Position 
= this.Position;
            
return l;
        }

创建一个新的标签,并把当前标签的名称和位置信息赋值给新的标签。

粘贴的功能很简单,就是吧内存中的拷贝的对象添加到容器中显示出来即可。

20.3 支持删除

实现Delete接口就可以支持删除,为了显示删除时候的渐变效果使用一个Storyboard在指定的时间后删除对象,如下所示:

Code

20.4 支持右键菜单

首先需要增加一个表示标签右键菜单的LabelMenu.xaml文件,如下所示:

Code

右键菜单有两个按钮,一个是删除标签,一个是拷贝标签,删除和拷贝的逻辑在上面已经实现了,只需要调用标签对应的方法即可。

本节内容到此就结束了,有什么好的意见请给我留言,多谢!