选项卡控件样式



我正在学习在wpf中使用样式,并且正在为Tab控件创建样式。我在想,是否有人能告诉我如何阻止一个样式向下传播,例如,我有一个Tab控件,其中一个选项卡项包含另一个可关闭的选项卡项的选项卡控件(是的,Nested tabcontrol O.O)。

所以在我的第一个UserControl中,它有一个"主"TabControl,这个UserControl也有一个UserControl.Resource,它有这个TabControl的样式。这种风格向下推广到嵌套的tabcontrol,我如何才能阻止这种情况的发生?

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

<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

复制整个默认样式模板,然后我建议将其放在一个单独的资源字典中,但无论哪种方式,您都会给样式模板一个唯一的x:Key名称,就像这样;

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

然后在您的选项卡控件本身调用您的特定样式模板,如;

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

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

相关内容

  • 没有找到相关文章

最新更新