WPF属性
属性:对XAML元素特征进行描述的方法,不允许在XAML中重复设置多次,可以在托管代码中改变元素的属性值
设置属性的几种方式:
- 使用属性语法
- 使用属性元素语法
- 使用内容语法
- 使用集合元素语法
在属性语法中,每个属性对应一个属性类型匹配的属性值,例如颜色属性对应的是颜色类型的属性值,不然的话是会出错的。在一个标签里面可以设置对象的多个属性,例如除了可以设置它的颜色外,还可以设置它的大小
<Canvas Width="400" Height="250" Background="Red"></Canvas>
<!--或者-->
<Canvas Width="400" Height="250" Background="Red"/>
使用属性元素语法,在父元素里再写子元素
<Ellipse Width="350" Height="300">
<!--设置属性 Fill-->
<Ellipse.Fill>
<SolidColorBrush Color="Black"/>
</Ellipse.Fill>
</Ellipse>
使用内容元素语法,在里面设置文本内容,例如TextBlock可以支持大量的文本内容,Content也能设置一些简短的内容,但是使用TextBlock会更灵活
<TextBlock Width="300" TextWrapping="WrapWithOverflow" FontSize="20">
某些元素的属性支持内容元素语法,允许忽略元素的名称
实力对象会根据XAML元素中的第一个标记值来设置属性
对于大量的格式化文本,使用内容元素语法更加灵活
属性标记之间可以插入大量的文本内容
</TextBlock>
使用集合语法,须支持一个属性元素的集合,才能使用集合语法进行设置属性,也就是添加对象的属性项
<!--使用属性集合语法 方式-->
<Rectangle>
<Rectangle.Fill>
<LinearGradientBrush>
<GradientStopCollection>
<!--属性集合语法-->
<GradientStop Color="Gold" Offset="0.0"></GradientStop>
<GradientStop Color="Green" Offset="1.0"></GradientStop>
</GradientStopCollection>
</LinearGradientBrush>
</Rectangle.Fill>
</Rectangle>
属性还有理解为基本属性、附加属性、依赖属性
基本属性:顾名思义就是最基本的属性,以上的示例代码都可以被称为基本属性
附加属性:用于支持附加属性的元素,基本上很多都支持附加属性,例如背景属性可以附加不同的颜色值,字体的大小,或者是属性的位置调整......在父元素的附加属性元素,会继承所在父元素的属性
在以上的示例中,其实也都体现了附加属性,而附加属性更是时刻接触到的
<Canvas>
<Rectangle Canvas.Left="50" Canvas.Top="50" Width="200" Height="150" Fill="Green">
</Rectangle>
</Canvas>
依赖属性:一种可以自己没有值,可以通过绑定其他数据源获取值的值。可以值WPF的样式设置、数据绑定、继承、动画和默认值。当依赖属性的值发生改变,其源数据也会发生改变,布局、元素也会发生相应的改变。
使用Button来绑定窗口定义好的资源,依赖属性1继承了窗口的资源,依赖属性2同样的也是继承窗口资源,但是却呈现的不同效果,是因为依赖属性区分优先级,它会根据Button里的赋值优先设置,由于依赖属性2设置的颜色是黄色背景,所以呈现的是黄色的效果