当我们在XAML资源部分中定义样式时&将它的TargetType属性设置为特定的控件类型,然后我们不需要设置Style属性来控制该类型。 e.g。
<Window.Resources>
<Style TargetType="Button">
<Setter Property="Content" Value="Style set for all buttons"/>
<Setter Property="Background" Value="Gray"/>
</Style>
</Window.Resources>
<Grid>
<Button Height="27" HorizontalAlignment="Left" Margin="119,56,0,0" Name="button1" VerticalAlignment="Top" Width="140" />
<Button Style="{x:Null}" Content="No Style" Height="27" HorizontalAlignment="Left" Margin="212,121,0,0" Name="button2" VerticalAlignment="Top" Width="141" />
<Button Content="Button" Height="25" HorizontalAlignment="Left" Margin="296,183,0,0" Name="button3" VerticalAlignment="Top" Width="158" />
</Grid>
但是当我们想要为窗口中的所有控件定义样式时,我们需要将Style属性添加到每个控件以具有该定义的样式。 e.g。
<Window.Resources>
<Style x:Key="Style1" TargetType="Control">
<Setter Property="Control.Background" Value="Gray"/>
</Style>
</Window.Resources>
<Grid>
<Button Style="{StaticResource Style1}" Content="Button" Height="23" HorizontalAlignment="Left" Margin="67,52,0,0" Name="button1" VerticalAlignment="Top" Width="75" />
<Label Style="{StaticResource Style1}" Content="Label" Height="27" HorizontalAlignment="Left" Margin="189,99,0,0" Name="label1" VerticalAlignment="Top" Width="83" />
</Grid>
我们不能用Button&amp ;;访问样式“Style1”。上面的示例中没有设置Style属性的标签,具体在Button&amp;标签控件?
提前致谢。
答案 0 :(得分:1)
尝试<Style TargetType="Button" BasedOn="{StaticResource style1}"/>
用于按钮,其他用于标签等等......
答案 1 :(得分:1)
与here
类似的问题普遍的共识是,你不能将风格应用于像控件那样深奥的东西。考虑到广泛的属性和控件,我可以理解为什么系统拒绝/忽略它。我建议也许这样的事情让你接近你想要的东西:
<Style x:Key="general" TargetType="{x:Type Control}">
<Setter Property="Control.Background" Value="Green"/>
</Style>
<Style BasedOn="{StaticResource general}" TargetType="{x:Type Button}"/>
<Style BasedOn="{StaticResource general}" TargetType="{x:Type Label}"/>
<Style BasedOn="{StaticResource general}" TargetType="{x:Type CheckBox}"/>