Создать вкладку боковой панели с разделами WPF - PullRequest
6 голосов
/ 16 мая 2011

Я пытаюсь создать боковую панель с вкладками с разделами, как показано ниже в WPF. Есть несколько подходов, которые я рассмотрел, но есть ли более простой и элегантный способ сделать это?

Подход 1: ListBox

Использование ListBox и привязка SelectedItem к значению, к которому привязывается элемент управления содержимым справа. Чтобы различать заголовок и разделы, я использую селектор DataTemplate.


Подход 2: RadioButton / флажки / кнопки переключения

Используя радиокнопки, я привязываю выбранный элемент к управлению контентом. Однако из-за ошибки WPF мне придется связать их вместе с помощью преобразователей значений.


Tabbed Interface Split into Sections

enter image description here

Ответы [ 2 ]

2 голосов
/ 16 мая 2011

Добавьте немного больше стиля к этому, и я думаю, что он может работать довольно хорошо

    <TabControl TabStripPlacement="Left">
        <TabControl.Resources>
            <Style TargetType="TabItem" x:Key="SideBarSectionStyle">
                <Setter Property="IsEnabled" Value="False" />
                <Setter Property="FontSize" Value="16" />
                <Setter Property="Foreground" Value="LightGreen" />
            </Style>
        </TabControl.Resources>

        <TabItem Header="Section A" Style="{StaticResource SideBarSectionStyle}" />
        <TabItem Header="Tab Item 1" IsSelected="True" />
        <TabItem Header="Tab Item 2" />
        <TabItem Header="Tab Item 3" />
        <TabItem Header="Tab Item 4" />
        <TabItem Header="Tab Item 5" />
        <TabItem Header="Section B" Style="{StaticResource SideBarSectionStyle}" />
        <TabItem Header="Tab Item 6" />
        <TabItem Header="Tab Item 7" />
        <TabItem Header="Tab Item 8" />
        <TabItem Header="Tab Item 9" />
    </TabControl>
1 голос
/ 16 мая 2011

Вот еще несколько идей:

  1. (вероятно, самый идеальный). Используйте древовидную структуру и шаблон родителей и детей, чтобы скрыть кнопку расширения. Это должно помочь вам понять, как их скрыть.

  2. Вместо использования 1 списка, используйте несколько списков, каждый из которых представляет свою категорию параметров.Вы можете использовать один и тот же шаблон или разные, если хотите.Кроме того, я бы держал заголовок вне списка, и чтобы он был меткой или чем-то, что находится над списком.Вы можете отрегулировать поле в списке, чтобы получить этот родительский / дочерний отступ, как в виде дерева.

...