我无法继承TabControl的ItemContainerStyle中的默认样式。
目的是继承主题风格,只改变一些属性。
如果我编写此XAML代码,则使用默认的TabItem样式,但不使用主题。 你知道为什么吗?
<TabControl>
<TabControl.Resources>
<Style TargetType="Button" BasedOn="{StaticResource {x:Type Button}}">
<Setter Property="Background" Value="DarkBlue"/>
</Style>
</TabControl.Resources>
<TabControl.ItemContainerStyle>
<Style TargetType="TabItem" BasedOn="{StaticResource {x:Type TabItem}}">
<Setter Property="Background" Value="Blue"/>
<Setter Property="Foreground" Value="Red"/>
</Style>
</TabControl.ItemContainerStyle>
<TabItem Header="Tab 1"/>
<TabItem Header="Tab 2"/>
<TabItem Header="Tab 3"/>
<TabItem Header="Tab 4"/>
</TabControl>
PS:在资源中为Button做同样的事情很有效。怎么没有TabItem样式?与ItemContainerStyle有关吗?
PS2:我的主题样式(默认样式)存储在应用程序资源中。
由于
编辑1
您可以在我的保管箱上找到示例项目: https://dl.dropboxusercontent.com/u/61987557/InheritDefaultStyle.zip
答案 0 :(得分:0)
我猜TabItemStyle和ItemContainerStyle是两回事 ItemContainerStyle 应用于为每个项目生成的容器元素。 而你试图在ItemContainerStyle中设置TabItemStyle。
答案 1 :(得分:0)
为TabItem的样式定义一个键:
<Style TargetType="{x:Type TabItem}" x:Key="StandardTabItemControl">
...
</Style>
然后使用此密钥继承它:
<TabControl.ItemContainerStyle>
<Style TargetType="TabItem" BasedOn="{StaticResource StandardTabItemControl}">
...
</Style>
</TabControl.ItemContainerStyle>