【问题标题】:TabControl StylesTabControl 样式
【发布时间】:2012-01-09 17:22:12
【问题描述】:

我正在学习在 wpf 中使用样式,并且正在为选项卡控件创建样式。如果有人能告诉我如何阻止一种风格向下传播,我正在徘徊,例如,我有一个 Tab 控件,其中一个 tabitems 包含另一个 tabcontrol,可关闭的 tabitems,(是的 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

【问题讨论】:

    标签: wpf styles


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 太棒了,谢谢伙计:D 是的,进入资源字典只是想先构建它:D 再次感谢 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-22
    • 2014-06-28
    相关资源
    最近更新 更多