[英]How to change the background color of the TabPanel in a TabControl?
[英]How can I conditionally hide the TabPanel portion of a TabControl in its entirety?
我发现这个问题有很多变体,但是对话似乎总是围绕着单个TabItems
,而不是围绕TabPanel
本身展开。
我的主窗口上有一个TabControl
。 这些选项卡是视图。 这些视图之一是特殊的……导航显示,而其他所有视图都是导航视图可以打开的“部分”。
我要完成的工作是,当用户查看导航视图时,所有选项卡都消失了。 即隐藏整个TabPanel
而不必一次一个地隐藏每个TabItem
。 在查看任何其他页面时,将显示选项卡,以便在视图之间轻松移动。
我遇到的问题是, TabPanel
似乎没有要进行绑定到Visibility
属性的DataTrigger
类的Template
,可以重写该Template
。 我得到的最接近的是一个普通的老式Style.Setter
。
关于如何获得我所追求的任何建议?
您基本上可以自己提供答案-正确的组合是将Style
与DataTrigger
一起使用。 诀窍是定义一个TargetType
设置为{x:Type TabPanel}
的Style
,并将其作为TabControl
的资源-这样,该样式将应用于TabPanel
(因为这是隐式样式 )。 这是一个例子:
<TabControl (...)>
<TabControl.Resources>
<Style TargetType="{x:Type TabPanel}">
<Style.Triggers>
<DataTrigger Binding="{Binding SelectedIndex, RelativeSource={RelativeSource AncestorType=TabControl}}"
Value="0">
<Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>
</Style.Triggers>
</Style>
</TabControl.Resources>
(...)
</TabControl>
在此示例中,选择第一项时面板将折叠。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.