WPF中样式:类似于winform中控件的属性
<Grid><!-- Button属性 字体大小 字体颜色 内容 控件宽 高 --><Button FontSize="20" Foreground="Blue" Content="Hello" Width="100" Height="40"/></Grid>
效果如下:
如果要创建多个相似效果的按钮,就需要将该属性写多次,虽然也能达到相同的效果;但是费力。
<Grid><StackPanel><!-- Button属性 字体大小 字体颜色 内容 控件宽 高 --><Button FontSize="20" Foreground="Blue" Content="Hello" Width="100" Height="40"/><Button FontSize="20" Foreground="Blue" Content="Hello" Width="100" Height="40"/><Button FontSize="20" Foreground="Blue" Content="Hello" Width="100" Height="40"/></StackPanel></Grid>
效果如下:
因此,首先想到的是早轮子重复使用。需要通过Style。
创建样式的步骤:
- 在Window.Resources中创建样式
- 给每个样式声明一个键Key,一个样式的名称而已
- 给每个样式声明一个目标类型TargetType,例如Button
- 设置属性:(Button为例)
- 字体大小FontSize
- 背景颜色Background
- 字体颜色Foreground,边距Margin
- 水平位置HorizontalAlignment,垂直位置VerticalAlignment
样式是组织和重用以上的重要工具。不是使用重复的标记填充XAML,通过Styles创建一系列封装所有这些细节的样式。它也是模板(Template)、触发器(Trigger)的基础。
<Window.Resources><Style x:Key="defaultStyle" TargetType="Button"><Setter Property="FontSize" Value="30"/><Setter Property="Foreground" Value="Blue"/><Setter Property="Width" Value="100"/><Setter Property="Height" Value="40"/></Style></Window.Resources><Grid><StackPanel><Button Style="{StaticResource defaultStyle}" Content="Hello"/><Button Style="{StaticResource defaultStyle}" Content="Hello"/><Button Style="{StaticResource defaultStyle}" Content="Hello"/></StackPanel></Grid>
效果如下:
查询Style源代码:
namespace System.Windows
{//// 摘要:// 启用的属性、 资源和事件处理程序的一种类型的实例之间共享。[ContentProperty("Setters")][DictionaryKeyProperty("TargetType")][Localizability(LocalizationCategory.Ignore)]public class Style : DispatcherObject, INameScope, IAddChild, ISealable, IHaveResources, IQueryAmbient{//// 摘要:// 初始化 System.Windows.Style 类的新实例。public Style