1.附加属性
附加属性作用于支持附加属性的元素
附加属性是由支持附加属性的父元素产生作用,支持附加属性的元素会继承所在的
父元素的属性
附加属性的格式<控件元素对象 附加元素对象.附件属性名=属性值/>
我们可以通过以下几个实例理解附加属性,例如,在布局控件Canvas中定义一个按钮控件,而按钮本身没有任何属性可以控制其在布局控件Canvas中的位置,而在Canvas中,定义了两个依赖属性作为按钮控件的附加属性,帮助按钮控制在Canvas中的位置,其代码如下:
<Canvas>
<Button Canvas.Left=”25” Canvas.Top=”30” />
</Canvas>
2.依赖属性
英语名称:Dependency Properties
依赖属性和和CRL属性类似,提供一个实例级私有字段的访问封装,通过GetValue和
SetValue
访问器实现属性的读写操作
最重要一个特点是属性值依赖于一个或者多个数据源,提供这些数据源的方式也可
以不同
由于依赖多数据源的缘故,故称之为依赖属性
依赖属性可以通过不同类型的数据源进行赋值,其赋值顺序的不同影响着属性值的改变.为了能够获取准确的依赖属性值,需要了解不同数据源的优先级别,如下图:
1. 从图中可以看到,应用动画占有对以来属性控制的最高优先级,简单理解,无论动画代码定义在当前页面内,还是定义在模板代码内,动画都将获得对页面内依赖属性的最优先控制权。
2. 次一级优先权是依赖属性本地化操作,分别包括其中包括依赖属性赋值,数据绑定,资源引用等。依赖属性使用方式和CLR属性使用类似,可以使用以下格式对依赖属性进行赋值操作:
元素对象.依赖属性=属性值
例如:button.width=200
3. 第三优先权是数据模板和控件模板对依赖属性的控制;
4. 其次是样式控制器对依赖属性的控制优先权;
5. 最低的依赖属性控制优先权是在定义依赖属性时使用GetValue和SetValue对属性默认的赋值。
开发人员可以通过对依赖属性不同优先权的控制,操作页面属性值,使控件或者页面达到需求运行效果。