Style的风格和样式
Style来设置控件的某些属性值,并使该设置影响到指定范围内的所有该类控件或影响指定的某一控件,比如说我们想将窗口中的所有按钮都保持某一种风格,那么我们可以设置一个Style,而不必分别设置每个按钮的风格。
Style是作为一种资源被保存下来的
我们声明了一个Style,它被声明在Window.Resources中说明它的有效范围是当前窗体
给按钮定义一个Style的样式,在定义一个字体Yellow的颜色,和CourierNew的背景色。
<Window.Resources>
<Style TargetType="Button" x:Key="button1">
<Setter Property="Foreground" Value="Yellow"></Setter>
<Setter Property="FontFamily" Value="CourierNew"></Setter>
<!---->
</Style>
<Style TargetType="Button" x:Key="TriggerButtonStyle" BasedOn="{StaticResource button1}">
<Style.Triggers>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Foreground" Value="Red"></Setter>
</Trigger>
</Style.Triggers>
</Style>
<Style TargetType="Button" x:Key="button2" BasedOn="{StaticResource button1}">
<Style.Triggers>
<Trigger Property="IsPressed" Value="true">
<Setter Property="Foreground" Value="Blue"></Setter>
</Trigger>
</Style.Triggers>
</Style>
<Style TargetType="Button" x:Key="button3" BasedOn="{StaticResource button1}">
<Style.Triggers>
<Trigger Property="IsPressed" Value="false">
<Setter Property="Foreground" Value="Aquamarine"></Setter>
<Setter Property="FontSize" Value="18"></Setter>
</Trigger>
</Style.Triggers>
</Style>
</Window.Resources>
<Grid ShowGridLines="True">
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Button Style="{StaticResource button1}">按钮1</Button>
<Button Grid.Column="1" Style="{StaticResource TriggerButtonStyle}">按钮2</Button>
<Button Grid.Row="1" Grid.Column="1" Style="{StaticResource button2}">按钮3</Button>
<Button Grid.Row="1" Style="{StaticResource button3}">按钮4</Button>
</Grid>