开发工具与关键技术:Visual Studio #WPF #XAML
作者:翁一凯
撰写时间:2022/5/8
XAML属性
一、属性设置几种方式
属性:属性是对XAML元素特征进行描述的方法;属性不允许在XAML中重复设置多次;允许在托管代码中改变元素的属性值。
设置几种方式:
·使用特性语法(属性语法)
·使用属性元素语法
·使用内容元素语法
·使用集合语法
1、使用特性语法(属性语法)
对象的属性通常可表示为对象元素的特性。特性语法对设置的对象属性命名,后跟赋值运算符(=)。特性的值始终指定为包含在引号中的字符串。
特性语法是最简化的属性设置语法,并且对曾使用过标记语言的开发人员而言是最直观的语法。
每个属性对应一个属性值,属性值类型必须与属性匹配
一个标记中可以设置对象的多个属性
只有实例化对象才可以设置实例属性,格式如下:
2、使用属性元素语法
对于对象元素的某些属性,无法使用特性语法,因为无法在特性语法的引号和字符串限制内充分地表达提供属性值所必需的对象或信息。对于这些情况,可以使用另一个语法,即属性元素语法。
属性元素开始标记的语法为<TypeName.PropertyName>。通常,该标记的内容是类型的对象元素,属性会将该元素作为其值。指定内容之后,必须用结束标记结束属性元素。结束标记的语法为</TypeName.PropertyName>。
3、使用内容元素语法
某些元素的属性支持内容元素语法,允许忽略元素的名称
实例对象会根据XAML元素中的第一个标记值来设置属性
对于大量的格式化文本,使用内容元素语法更灵活
属性标记之间可以插入大量的文本内容
4、使用集合语法
XAML规范要求XAML处理器实现来标识值类型为集合的属性。.NET中的常规XAML处理器实现基于托管代码和CLR,并通过以下方法之一标识集合类型:
·类型实现IList
·类型实现IDictionary
·类型派生至自Array
XAML语言包含一些优化,可以生成更易于阅读的标记。其中一项优化是:如果某个特定属性采用集合类型,则在标记中声明为该属性的值内的子元素的项将成为集合的一部分。在这种情况下,子对象元素的集合是设置为集合属性的值。
元素支持一个属性元素的集合,才使用集合语法进行设置属性
使用托管代码的Add方法来增加更多的集合元素
本质是向对象的集合中添加属性项
二、基本属性、附加属性和依赖属性
1、附加属性
·附加属性作用于支持附加属性的元素
·附加属性是由支持附加属性的父元素产生作用,支持附加属性的元素会继承所在的 父元素的属性。
·附加属性的格式:AttachedPropertyProvider.PropertyName
例子:
2、依赖属性
英文名称:Dependency Properties 依赖属性和CRL属性类似,提供一个实例级私有字段的访问封装,通过GetValue和 SetValue访问器实现属性的读写操作 最重要一个特点是属性值依赖于一个或者多个数据源,提供这些数据源的方式也可 以不同 由于依赖多数据源的缘故,故称之为依赖属性。