属性设置几种方式
属性:
属性是对XAML元素特征进行描述的方法;属性不允许在XAML中重复设置多次;允许在托管代码中改变元素的属性值
设置几种方式:
使用特性语法(属性语法)
使用属性元素语法
使用内容元素语法
使用集合语法
1、使用特性语法(属性语法)
对象的属性通常可表示为对象元素的特性。 特性语法对设置的对象属性命名,后跟赋值
运算符 (=)。 特性的值始终指定为包含在引号中的字符串。
特性语法是最简化的属性设置语法,并且对曾使用过标记语言的开发人员而言是最直观
的语法。
每个属性对应一个属性值,属性值类型必须与属性匹配
一个标记中可以设置对象的多个属性
只有实例化对象才可以设置实例属性,格式如下:
或者
例子
或者
效果
2、使用属性元素语法
对于对象元素的某些属性,无法使用特性语法,因为无法在特性语法的引号和字符串限
制内充分地表达提供属性值所必需的对象或信息。 对于这些情况,可以使用另一个语
法,即属性元素语法。
属性元素开始标记的语法为 <TypeName.PropertyName>。 通常,该标记的内容是类型
的对象元素,属性会将该元素作为其值。 指定内容之后,必须用结束标记结束属性元
素。 结束标记的语法为 </TypeName.PropertyName>。
某些属性可以使用属性元素语法来设置,格式为
<object.property>
</object.property>
例子
<Ellipse.Fill>
</Ellipse.Fill>
效果
<Button>
<Button.Background>
<SolidColorBrush Color="Blue"/>
</Button.Background>
<Button.Foreground>
<SolidColorBrush Color="Red"/>
</Button.Foreground>
<Button.Content>
This is a button
</Button.Content>
</Button>
效果
![在这里插入图片描述](https://www.icode9.com/i/ll/?i=697e5f1edd1743789be8e5403842c75c.png)
3、使用内容元素语法
某些元素的属性支持内容元素语法,允许忽略元素的名称
实力对象会根据XAML元素中的第一个标记值来设置属性
对于大量的格式化文本,使用内容元素语法更加灵活
属性标记之间可以插入大量的文本内容
例子
<TextBlock Width="200" TextWrapping="NoWrap">
某些元素的属性支持内容元素语法,允许忽略元素的名称
实力对象会根据XAML元素中的第一个标记值来设置属性
对于大量的格式化文本,使用内容元素语法更加灵活
属性标记之间可以插入大量的文本内容
XAML 内容属性值必须是连续的
XAML 内容属性的值必须完全在该对象元素上的任何其他属性元素之前或之后指定。 无论 XAML 内容属性的值是指定为字符串,还是指定为一个或多个对象,都是如此。 例如,以下标记不会进行分析:
I am a
<Button.Background>Blue</Button.Background>
blue button
这对于本质而言是非法的,因为如果通过使用 content 属性的属性元素语法使此语法变为显式,则内容属性将设置两次:
<Button.Content>I am a </Button.Content>
<Button.Background>Blue</Button.Background>
<Button.Content> blue button</Button.Content>
4、使用集合语法
XAML 规范要求 XAML 处理器实现来标识值类型为集合的属性。 .NET 中的常规 XAML
处理器实现基于托管代码和 CLR,并通过以下方法之一标识集合类型:
类型实现 IList 。
类型实现 IDictionary 。
类型派生自 Array (有关 XAML 中数组的详细信息,请参阅 X:Array 标记扩展。 )
XAML 语言包含一些优化,可以生成更易于阅读的标记。 其中一项优化是:如果某个特
定属性采用集合类型,则在标记中声明为该属性的值内的子元素的项将成为集合的一部
分。 在这种情况下,子对象元素的集合是设置为集合属性的值。
元素支持一个属性元素的集合,才使用集合语法进行设置属性
使用托管代码的Add方法来增加更多的集合元素
本质是向对象的集合中添加属性项
例子