女生的最爱,装饰品。WPF也有,Adorner。(上海晒衣服理念)
说到装饰,不由要说到女性。
去年过年回家给我妈买了周大福项链,很明显就感觉待遇就不一样了,即使这样,还是被一个阿姨说应该买更重点的。看来钱这种东西果然是多一点才好。虽然自己无所谓,但让家里人更开心也是一种幸福啊。女朋友也很喜欢手链什么的,戴上手链气质的确会感觉挺不同的,我觉得这世界基本没有女生不喜欢身上装饰个神马的。
装饰不是衣服,也不会影响自己本来的搭配,它是一种在原本基础上锦上添花却不会影响原本结构的东西。
言归正传,假若你有个女朋友叫WPF,她有自己喜欢的搭配,当你追到她的时候她已经搭配好自己了,怎样才能在不改变她的同时加深下她的气质呢,那就需要钻石,项链。。Adorner。很突兀对么。其实Adorner和装饰物性质一样,需要一些努力(用时间来学习=金钱)之后就能取悦自己的女朋友了。
当你需要一个悬浮物不影响自己本来UI的建设,当你需要一个可以跟随你一个控件点击产生的跟随UI(比如点击一个按钮就在旁边出现一个小框,盖住之前UI的那种),当你需要一个可以定义为装饰而不是骨架的话,那就请使用装饰者模式。装饰模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。关于它的定义这里我就不概述了。链接直接给上http://baike.baidu.com/link?url=_c_YDD4bZSkpem21xAz6qTwU2HYHLxF2PBWFKQx7oGCIPnx2DUzq-KIU8Ni3h2alqYsZN8VY6pGDZkOZi84rZK
而在WPF中,最常用到的便是Adorner了。
在这里我便不赘述如何使用了,我会在最后给上链接,毕竟很多人写过,我希望我能做到的是能够把这个理念叙述清楚,而并不只是贴代码,授人以鱼不如授人以理念。
Adorner机制我觉得比较相似于上海晾衣服。上海是个很奇葩的城市,尤其是晾衣服。都是那种一根棍子串很多搭在外面架子上,我住在四楼,每次都战战兢兢。其实Adorner也类似,要晒的衣物便是Adorner里装的元素,衣服那根棍子是AdornerLayer,架子则是AdornerDecorator。
自己写好的元素装进Adorner里,用AdornerLayer串好,搭在AdornerDecorator的架子上。便是整个Adorner的实现。
自己感觉这里就结束还蛮突兀的,但实际上也就是那么简单。解耦和,分成各个功能模块,然后再组合在一起工作,这种方式着实令人着迷,也非常容易理解。
具体的使用方法和解释下面我就贴上来吧,站在巨人肩膀上才能更伟大,谢谢软件这个行业善于分享带来的世界的善意。
概念:http://www.cnblogs.com/loveis715/archive/2012/03/31/2427734.html
结构图:http://www.cnblogs.com/lusonixs/articles/1588859.html
CodeProject精品例子:http://www.codeproject.com/Articles/54472/Defining-WPF-Adorners-in-XAML
http://www.codeproject.com/Articles/709266/Design-Adorners-in-XAML-with-Data-Binding-Support
http://www.codeproject.com/Articles/72544/Editable-Text-Block-in-WPF
女生的最爱,装饰品。WPF也有,Adorner。(上海晒衣服理念)的更多相关文章
- WPFのDecorator 、Adorner和AdornerDecorator
Decorator 和 Adorner 它们都有“装饰品”的意思. Decorator类负责包装某个UI元素,以提供额外的行为.它有一个类型为UIElement的Child属性,其中含有待包装的内容. ...
- WPF Adorner
之前做项目时,为了实现类似微信消息数目的效果 image.png ,我之前是修改的ControlTemplate.类似于将一个带数字的控件,放在另一个控件的右上角,来实现的这个效果. 原来WPF有 ...
- WPF中的数据驱动
在WPF出现之前,Win Form,ASP.NET等技术均采用“事件驱动”理念,这种由“事件-订阅-事件处理器”关系交织在一起构成的程序,景观可以使用MVC.MVP等设计模式,但一不小心就会使界面逻辑 ...
- [WPF]WPF开发方法论
纵观Windows GUI应用程序开发方法,从Windows API.MFC到Visual Basic再到.NET Framework,WPF的开发方法论是在.NET Framework方法论的基础上 ...
- 图文列表,关于Simpleadapter
main.xml: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xm ...
- emouse思·睿—评论与观点整理之二
虽说我主要做的硬件,平时的兴趣爱好比较关注移动互联网,混迹于虎嗅.爱范儿.雷锋网.36Kr.cnBeta.瘾科技.i黑马.TechWeb等这类科技以及创业媒体,遗憾的是系统的去写的并不多,好在还算充分 ...
- sell01 环境搭建、编写持久层并进行测试
1 环境配置 JDK 1.8 MAVEN 3.5 MYSQL 5.7 VirtualBox 5.1 2 搭建MYSQL环境 下载 VM 和 虚拟镜像文件 虚拟镜像文件:点击前往 技巧01:安装完vir ...
- MySQL数据类型——数值类型
1.1.1 整型 整型 占用字节 范围 范围 tinyint 1 -27~27-1 -128~127 smallint 2 -215~215-1 -32768~32767 mediumint 3 -2 ...
- 淘宝杨志丰:OceanBase--淘宝结构化大数据解决之道
时至今日,“Big data”(大数据)时代的来临已经毋庸置疑,尤其是在电信.金融等行业,几乎已经到了“数据就是业务本身”的地步.这种趋势已经让很多相信数据之力量的企业做出改变.恰逢此时,为了让更多的 ...
随机推荐
- ECMAScript 5
2009年12月,ECMAScript 5.02011年6月,ECMAscript 5.1版发布2015年6月,ECMAScript 6正式通过,成为国际标准ES6第一个版本 ES2015,发布于20 ...
- phpcms 整合 discuz!
第一步,进入discuz后台,点击UCenter菜单,然后点击应用管理,接着点击右侧的添加新应用按钮 然后填写应用相关信息: 1.应用类型选择“其他” 2.应该名称填写“phpcms” //此处可以自 ...
- SQL 谜题(硬币的组合)
问题:早在ITPUB中看过有个SQL高手,喜欢出谜题,以下是一个谜题.我试用SQL SERVER解决此问题. 用1分,5分,10分,25分,50分硬币凑成一元,总共有几种组合办法? SELECT'1* ...
- Trigger和ViewStateManager的具体比较
ViewStateManager的好处 拥有 GeneratedDuration ,可以很方便的进行几个状态之间的切换过渡动画. 坏处是,在界面加载时只能显示默认效果,通过GoToStateActi ...
- dedecms 采集规则过滤与替换
过滤与替换常用操作:点击"常用规则",选择要过滤的代码段,再编辑成我们需要的.如果会文章简单采集了,接下来就需要过滤掉采集内容中的广告和链接及其它代码.一般的写法是{dede:tr ...
- MYSQL数据库------操作命令笔记
一.数据库连接 * 连接数据库命令(前提需要安装mysq ): mysql -h hostIp -u userName -pPassWord 二.数据库操作 * 查看所有数据库: show datab ...
- 利用 HashSet 去过滤元素是否重复
HashSet<Integer> hashSet = new HashSet<Integer>(); for (int i = resultDoctorDetails.size ...
- ps教程连接
教程1:http://www.68ps.com/jc/ps_tp.asp 教程2:http://www.3lian.com/edu/photoshop/
- div内文字超出换行问题
1.强制换行: div的样式加上: word-wrap:break-word;word-break:break-all; 2.在文字中间加入建议换行标志<wbr>可以每隔几个字符加一个,
- ubuntu 16.04 安装完QQ后,更新或apt-get报错
apt-get install python-pip正在读取软件包列表... 完成正在分析软件包的依赖关系树 正在读取状态信息... 完成 您可能需要运行“apt-get -f install”来纠正 ...