TabControl样式

时间:2012-01-09 01:34:43

标签: wpf styles

我正在学习在wpf中使用样式,我正在为Tab Control创建一个样式。我正在徘徊,如果有人可以告诉我如何阻止传播的样式,例如我有一个Tab控件,其中一个tabitems持有另一个tabcontrol,可关闭的tabitems,(是嵌套TabControl O.o)。

所以在我的第一个UserControl中,它拥有“Master”TabControl,这个UserControl还有一个UserControl.Rescource,它具有这个TabControl的样式。这种风格传播到嵌套的tabcontrol,我怎么能阻止这种情况发生?

另一个选项卡控件保存在单独的usercontrol类中。 看起来像这样:

<UserControl.Resources>
    <Style TargetType="{x:Type TabControl}">
        <Setter Property="SnapsToDevicePixels" Value="true"/>
        <Setter Property="Template">
         ...
         <!-- The Style -->
         ...
</UserControl.Resources>

<TabControl SelectedIndex="{Binding Path=TabIndexFocus}">
    <TabItem Header="Tab1" IsEnabled="{Binding Path=IsEnabled_WorkSpace}" >
        <View:NestedTabControl/>
    </TabItem>
    <TabItem Header="Tab2">
        <View:SomeOtherView />
    </TabItem> 
    .....
</TabControl>


谢谢大家:D

1 个答案:

答案 0 :(得分:1)

制作整个默认样式模板的副本,然后我建议将它放在一个单独的资源字典中,但无论哪种方式,你都会给样式模板一个唯一的x:键名这样;

<Style x:Key="NonDefaultTabControlStyle" Target="{x:Type TabControl}">

然后在标签控件中调用您的特定样式模板,如;

<TabControl Style="{StaticResource NonDefaultTabControlStyle}" ....>

当您指定唯一命名的样式模板时,它将使用它,否则它将使用默认值。希望这有帮助,祝你好运!