不喜欢,你已经使用target
定义,但如果你想一个style
适用于特定的control
。然后输入如下:
<StackPanel>
<Button x:Name="A">
<Button.Resources>
<Style TargetType="{x:Type Button}" >
<Setter Property="Background" Value="Red"/>
</Style>
</Button.Resources>
content A</Button>
<Button x:Name="B">
<Button.Resources>
<Style TargetType="{x:Type Button}" >
<Setter Property="Background" Value="Green"/>
</Style>
</Button.Resources>
content B</Button>
</StackPanel>
或者可能创建一个基本的风格,然后创建一个BasedOn
风格为您的控件。
更新:如果你只是想关心在时间的风格和一定影响的元素:
<Window.Resources>
<Style TargetType="{x:Type Button}" x:Key="First" >
<Setter Property="Background" Value="Red"/>
</Style>
<Style TargetType="{x:Type Button}" x:Key="Second" >
<Setter Property="Background" Value="Green"/>
</Style>
</Window.Resources>
<StackPanel>
<Button x:Name="A">
<Button.Resources>
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource First}" />
</Button.Resources>
content A</Button>
<Button x:Name="B">
<Button.Resources>
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource Second}" />
</Button.Resources>
content B</Button>
</StackPanel>
您可以利用样式继承(见['BasedOn'(http://www.wpftutorial.net/StyleInheritance.html))或默认样式* “传播” *('TargetType'没有'X: Key'将把样式应用于该类型的所有子元素)。 – Sinatr
在我写第一个答案时使用BasedOn。 –