WF,WPF,Silverlight的DependencyProperty 附加属性

注意,是DependencyProperty 附加属性,而不是绑定属性

首先看一个假设,

在不修改一个类的前提下,如何扩展一个类的成员(继承也不可以)

这在传统的OO设计中是无法完成的,但在NET3.0(C#3.0,VB.NET9.0)中提供了扩展方法开实现这一功能

看下例:

场景:我经常要用得到数字除2的结果,如何方便的实现

class Program
{
static void Main(string[] args)
{
double v1 = 123;
double p1 = v1.zzzzz();
System.Console.WriteLine(p1);

//--
double p2=(1234567890.123).zzzzz();
System.Console.WriteLine(p2);
}
}

static class myExtension
{
public static double zzzzz(this double d)
{
return d/2 ;
}
}

这就是扩展方法,在不修改的结构的情况下,为[ double ]添加了[zzzzz]这个方法

linq 用的就是这种方式

方法可以这样做,那属性哪?

升级一下需求,我想一个对象在一个环境中自动多出某几个属性,在另外一个环境中又自动多出另外几 个属性

如何做,

先看一下Silverlight

场景:提供一个容器,容器分两排,放入容器内的件意控件都可设置附加属性[myTag]的属性,[myTag]属 性设为[a]的在左边,设为[b]的在右边

时间: 2024-09-17 04:38:36

WF,WPF,Silverlight的DependencyProperty 附加属性的相关文章

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(三十二)

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(三十二) 雷.混.冰.毒.火.风 - 幻化中的魔法魅力 本节,我将为大家演示如何为游戏中的魔法增加华丽的附加属性. 第一步,定义规则: 1)定义魔法附加属性分类:在本教程示例游戏中,我将魔法附加属性定义为6类:雷.混.冰.毒.火.风,为什么要以这样无规律的方式去命名?因为是教程,我们需要学习的是如何实现对应效果,此6类属性算是目前网游中最流行的六大魔法属性,如果大家都掌握了,无论是中国式5行还是诸如其他的风格设

C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(三十九)

C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(三十九)向Silverlight移植① 一.主要改进: 1)Silverlight3.0上的右键实现: //注册右键事件 HtmlPage.Document.AttachEvent("oncontextmenu", Game_MouseRightButtonDown); //鼠标右键事件 private void Game_MouseRightButtonDown(object sender, H

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(十五)

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(十五) 精灵控件横空出世!② 紧接着上一节,我们打开QXSpirit.xaml.cs文件.在游戏设计中,为了能够轻易控制及管理精灵的各项属性及功能等,我赋予每个精灵一个专属线程,它在精灵的使用中起到关键作用: public QXSpirit() { InitializeComponent(); InitThread(); //初始化精灵线程 } DispatcherTimer Timer = new Dispa

wpf 中 timeline和附加属性奇怪的死循环

问题描述 wpf 中 timeline和附加属性奇怪的死循环 具体是这样的,我想建一个自定义list然后里面放timeline,在自定义的list中,我增加了两个附加属性,一个是 previous一个是next,用来给timeline项增加前一个后一个双向链接附加属性, 但增加的时候,会进行死循环,不知道为什么,如果给这个集合增加别的dependencyObj对象就一点问题也没有,如果增加timeline就进入死循环,代码如下 using System; using System.Collect

C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(四十五)

C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(四十五)制作精美的可任意拖放对象的物品栏及装备栏 在通常的网络游戏中,物品.装备.技能.快捷按钮等窗口中的图标都是可以相互拖放的,不同的栏目有着不同的限制,例如技能图标不能拖放到物品栏及装备栏中,且不是所有的魔法技能都可以拖放(如被动技能等):而非装备类的所有物品则无法拖放到角色的装备栏中.那么本节我将向大家讲解如何在本教程示例游戏中添加物品栏及装备栏,并实现它们之间双向物品交换的两种模式:拖放模式和双击模

C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(四十四)

C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(四十四)制作主角属性面板及加点器 游戏中会使用大量的菜单面板,而这些面板往往都带有选项卡.如果用Silverlight工具中的TabControl,则需要通过复杂的xaml重写模板来实现自定义样式,这一点时常让开发者头疼,毕竟界面的东西应该属于美工的范畴,这也是我所发现在目前Silverlight中唯一一处只能通过xaml而无法用代码实现的地方.当然,如果您对此特别感兴趣,同样可以到http://www.c

C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(四十三)

C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(四十三)制作游戏主菜单面板及鼠标左右键快捷技能栏 每款MMORPG都有一个主菜单,通常置于窗口的底部.游戏中主角大部分的设置操作都从这里开启.如人物属性.物品(包裹).技能.任务.队伍.地图.家族.门派.商城.系统设置等等:当然,还包括快捷自定义菜单栏,以及类似<暗黑破坏神>中经典式的左右键快捷技能栏.这些内容在不同的游戏中往往会根据自身的特性稍做调整,但整体上大同小异.本节,我将同样以<剑侠世界&

C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(四十二)

C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(四十二)制作精美的Mini地图② 前面章节中讲解的包括对象头像面板.Mini雷达地图等窗体都是位置固定的,在处理起来方式多样且简单:而RPG.SLG.休闲养成等类型的游戏中往往会大量使用到悬浮且可自由拖动的窗体,比如包裹面板.武器装备面板.个人属性面板.技能面板.系统设置面板等等,这就要求我们必须为游戏量身定做一个通用且易用的ChildWindow控件.那么本节我将为大家讲解如何制作一个包含可拖动头部.关闭

C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(四十一)

C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(四十一)制作精美的Mini地图① 用什么来承受未来几个月日思夜想的折磨?除了学习还是学习. 感慨了一翻,嘿嘿.本节我将为大家讲解如何为Silverlight游戏制作一个精美的Mini地图.Mini地图又分两种,一种是通常处于游戏窗口右上角的Mini雷达(导航)地图:另一种是全景Mini寻路地图.本节我先向大家讲解如何制作导航Mini雷达地图.此类地图在游戏中主要起到导航作用,即引导主角前行的方向,并且呈现出