WPF TabControl折叠标签页眉未完全隐藏

时间:2010-08-04 12:29:49

标签: wpf tabcontrol styling

我正在使用TabControl以编程方式显示或隐藏表单控件组。我已经实现了here所描述的技术,它大致按预期工作,除了在通常显示标签标题的位置有一个大约1或2像素高的波段。

我已经通过使用Snoop导航可视树并在选择每个元素时观察高亮矩形的移动来验证这一点。 tab内容元素的矩形大小略小于包含TabControl的大小,后者占我看到的额外像素。没有可能影响它的元素有边距,边框或填充。

为了与其他控件正确对齐,我需要消除这个额外的空间,但我不知道如何。但是,也许我应该问的问题是“有没有更好的方法来选择性地显示/隐藏控件组?”。

感谢您的想法, 添

1 个答案:

答案 0 :(得分:2)

我认为细线是由TabPanel引起的,即使所有TabItem都已折叠,它仍然存在。

但是,您可以更改TabControl的{​​{1}}并将ControlTemplate的{​​{1}}绑定到标签数量,如下所示:

TabPanel

当然,您必须实现一个转换器,将0转换为Visibility,将所有其他值转换为<TabPanel ... Visibility="{Binding Items.Count, RelativeSource={RelativeSource FindAncestor, Type={x:Type TabControl}}, Converter={StaticResource ZeroToCollapsedConverter}}" ... />

BTW:您可以获得Visibility.Collapsed here的默认Visibility.Visible