是否有可能覆蓋其他風格的風格。我最好的說明將一些非工作代碼:風格覆蓋風格
<Style x:Key="SpecialFont" TargetType="Label">
<Setter Property="Foreground" Value="Red" />
<Setter Property="FontSize" Value="28" />
</Style>
<Style TargetType="GroupBox">
<Setter Property="GroupBox.Resources">
<Setter.Value>
<Style x:Key="SpecialFont" TargetType="Label">
<Setter Property="FontSize" Value="74" />
</Style>
</Setter.Value>
</Setter>
</Style>
的想法是,我會定義一個樣式,以我的「特殊文本」,字體默認情況下是紅色和28的大小,但如果標籤放置在一個組框中,它的尺寸應該是74,但保持紅色。這怎麼可能?我希望在我的xaml中使用相同的樣式鍵,而不是基於另一種樣式創建樣式。基於SpecialFont的SpecialFontBig。
編輯: 好的......另一種解釋。
我想結果是這樣的:
<Style x:Key="BaseFont" TargetType="Label">
<Setter Property="Foreground" Value="White" />
</Style>
<Style x:Key="Font1" TargetType="Label" BasedOn="{StaticResource BaseFont}">
<Setter Property="FontSize" Value="10" />
</Style>
<Style x:Key="Font2" TargetType="Label" BasedOn="{StaticResource BaseFont}">
<Setter Property="FontSize" Value="20" />
</Style>
<Style x:Key="Font3" TargetType="Label" BasedOn="{StaticResource BaseFont}">
<Setter Property="FontSize" Value="30" />
</Style>
<Style x:Key="Font1Red" TargetType="Label" BasedOn="{StaticResource Font1}">
<Setter Property="Foreground" Value="Red" />
</Style>
<Style x:Key="Font2Red" TargetType="Label" BasedOn="{StaticResource Font2}">
<Setter Property="Foreground" Value="Red" />
</Style>
<Style x:Key="Font3Red" TargetType="Label" BasedOn="{StaticResource Font3}">
<Setter Property="Foreground" Value="Red" />
</Style>
凡FontX使用我的groupboxes外,並FontXRed使用在他們裏面。是否有可能推翻這個前景,而沒有製作大量的FontXRed風格?例如像:
<Style x:Key="BaseFont" TargetType="Label">
# IF INSIDE A GROUPBOX
<Setter Property="Foreground" Value="Red" />
# ELSE
<Setter Property="Foreground" Value="White" />
</Style>
Ups ... double post,但正如我上面寫的,我不想有兩種不同的樣式,但只是重寫樣式中的某些值,如果它用在groupbox中。 – kahr 2010-09-08 10:08:16