Заголовки свернутых вкладок WPF TabControl скрыты не полностью - PullRequest
2 голосов
/ 04 августа 2010

Я использую TabControl, чтобы программно показать или скрыть группы элементов управления формы. Я реализовал метод, описанный здесь , и он примерно работает как положено, за исключением того, что в месте, где обычно отображаются заголовки вкладок, есть полоса высотой примерно 1 или 2 пикселя.

Я проверил это с помощью Snoop для навигации по дереву визуалов и наблюдения за перемещением выделенного прямоугольника при выборе каждого элемента. Размер прямоугольника для элемента содержимого вкладки немного меньше, чем у содержащего TabControl, который учитывает дополнительные пиксели, которые я вижу. Ни один из элементов, которые могут повлиять на это, не имеет полей, границ или отступов.

Чтобы добиться правильного выравнивания с другими элементами управления, мне нужно устранить это дополнительное пространство, но я не уверен, как это сделать. Однако, возможно, мне следует задать вопрос: «Есть ли лучший способ выборочно показать / скрыть группы элементов управления?».

Спасибо за ваши идеи, Тим

1 Ответ

2 голосов
/ 04 августа 2010

Я полагаю, что тонкая линия вызвана TabPanel, который все еще там, хотя все TabItem s свернуты.

Однако, вы можете изменить TabControl '* ControlTemplate исвяжите TabPanel s Visibility с количеством вкладок, например:

<TabPanel ... Visibility="{Binding Items.Count, RelativeSource={RelativeSource FindAncestor, Type={x:Type TabControl}}, Converter={StaticResource ZeroToCollapsedConverter}}" ... />

Конечно, вам придется реализовать конвертер, который преобразует 0 в Visibility.Collapsed и все другие значения вVisibility.Visible.

Кстати: вы можете получить значение по умолчанию ControlTemplate для TabControl здесь .

...