第一种方式:瞄准控件的基类
如下例所示,继承ContentControl的控件,都可以使用这个Style
<Window.Resources>
<Style x:Key="ContentControlStyle" TargetType="ContentControl"> <Setter Property="Background" Value="Pink"></Setter> <Setter Property="FontSize" Value="12"></Setter> </Style> </Window.Resources> <Grid> <Grid.RowDefinitions> <RowDefinition Height="*"></RowDefinition> <RowDefinition Height="*"></RowDefinition> </Grid.RowDefinitions> <Label Style="{StaticResource ContentControlStyle}" Content="按钮和文本框使用了基于ContentControl的Style"></Label> <Button Style="{StaticResource ContentControlStyle}" Content="按钮" Grid.Row="1"></Button> </Grid>
第二种方式:继承
<Window.Resources>
<Style x:Key="baseStyle" TargetType="Button"> <Setter Property="Background" Value="Pink"></Setter> <Setter Property="FontSize" Value="12"></Setter> </Style> <Style x:Key="childStyle" TargetType="Button" BasedOn="{StaticResource baseStyle}"> <Setter Property="FontSize" Value="50"></Setter> </Style> </Window.Resources> <Grid> <Button Style="{StaticResource childStyle}" Content="按钮"></Button> </Grid>
就近原则:父类子类同时设定属性,调用子类,以子类为准
示例代码
https://github.com/zLulus/NotePractice/tree/dev3/WPF/WpfDemo/Style 的StyleInheritDemo和StyleInheritDemo2