在资源里面定义 style 可以在控件中引用。
如果控件中有指定的样式,则覆盖资源定义的 style
资源样式支持继承。
<Window.Resources> <Style x:Key="btnStyleBase" TargetType="Button"> <Setter Property="FontSize" Value="30"></Setter> </Style> <Style x:Key="btnStyle" TargetType="Button" BasedOn="{StaticResource btnStyleBase}"> <Setter Property="Foreground" Value="Blue"></Setter> </Style> </Window.Resources> <Grid x:Name="grid_main"> <Button Style="{StaticResource btnStyle}" Grid.Row="1" Click="Button_Click"> <Button.FontWeight>Bold</Button.FontWeight> ... </Button> ... </Grid>
|
触发器
可以通过触发器动态改变样式
<Style x:Key="btnStyleBase" TargetType="Button"> <Setter Property="FontSize" Value="30"></Setter> <Style.Triggers> <Trigger Property="IsMouseOver" Value="True"> <Setter Property="Foreground" Value="Red"></Setter> <Setter Property="FontSize" Value="10"></Setter> </Trigger> <Trigger Property="IsMouseOver" Value="False"> <Setter Property="Foreground" Value="Blue"></Setter> <Setter Property="FontSize" Value="30"></Setter> </Trigger> </Style.Triggers> </Style>
|
多条件触发
<MultiTrigger> <MultiTrigger.Conditions> <Condition Property="IsMouseOver" Value="True"></Condition> <Condition Property="IsFocused" Value="True"></Condition> </MultiTrigger.Conditions> <MultiTrigger.Setters> <Setter Property="Foreground" Value="Red"></Setter> </MultiTrigger.Setters> </MultiTrigger>
|
事件触发器
<Window.Resources> <Style x:Key="btnStyleBase" TargetType="Button"> <Setter Property="FontSize" Value="30"></Setter> <Style.Triggers> <EventTrigger RoutedEvent="Mouse.MouseEnter"> <EventTrigger.Actions> <BeginStoryboard> <Storyboard> <DoubleAnimation Duration="0:0:1" Storyboard.TargetProperty="FontSize" To="10" ></DoubleAnimation> </Storyboard> </BeginStoryboard> </EventTrigger.Actions> </EventTrigger> </Style.Triggers> </Style> <Style x:Key="btnStyle" TargetType="Button" BasedOn="{StaticResource btnStyleBase}"> <Setter Property="Foreground" Value="Blue"></Setter> </Style> </Window.Resources>
|