GroupBox и TabItem

50

Класс GroupBox

Класс GroupBox — наиболее простой из трех элементов управления, порожденных от HeaderedContentControl. Он имеет вид прямоугольника с закругленными углами и заголовком. Ниже приведен пример:

<GroupBox Header="Группа элементов" Margin="5" Padding="5">
            <StackPanel>
                <CheckBox>Один</CheckBox>
                <CheckBox Margin="0,5,0,5">Два</CheckBox>
                <CheckBox>Три</CheckBox>
                <Button HorizontalAlignment="Center" Padding="5">Ok</Button>
            </StackPanel>
        </GroupBox>
GroupBox

Обратите внимание, что элементу GroupBox нужен контейнер компоновки (наподобие StackPanel) для размещения содержимого. Он часто используется для группировки небольшого количества взаимосвязанных элементов управления, таких как кнопки переключателя. Однако в классе GroupBox нет никаких встроенных функций, поэтому его можно применять где угодно и как угодно. (Объекты RadioButton группируются их размещением на какой-либо панели. При этом элемент GroupBox не обязателен, если вам не нужно их окаймление с заголовком и округлыми углами.)

Класс TabItem

Объекты TabItem представляют собой страницы в элементе TabControl. Единственным существенным членом, добавленным в класс Tabltem, является свойство IsSelected, которое указывает, видима ли данная вкладка в TabControl.

Вот разметка, необходимая для создания простого примера:

<TabControl>
        <TabItem Header="Вкладка 1">
            <GroupBox Header="Группа элементов" Margin="5" Padding="5">
                <StackPanel>
                    <CheckBox>Один</CheckBox>
                    <CheckBox Margin="0,5,0,5">Два</CheckBox>
                    <CheckBox>Три</CheckBox>
                    <Button HorizontalAlignment="Center" Padding="5">Ok</Button>
                </StackPanel>
            </GroupBox>
        </TabItem>
        <!-- Используем нестандартное содержимое в заголовке TabItem -->
        <TabItem>
            <TabItem.Header>
                <StackPanel>
                    <TextBlock>Вкладка 2</TextBlock>
                    <Image Source="img.png" Width="50" Margin="5"></Image>
                </StackPanel>
            </TabItem.Header>
        </TabItem>
    </TabControl>

Как и свойство Content, свойство Header может содержать объект любого типа. Объекты, порожденные от класса UIElement, выводятся с помощью графической прорисовки, а текстовые и другие объекты — с помощью метода ToStringO. Это означает, что можно создать групповую панель или вкладку, заголовок которой содержит графическое содержимое или другие произвольные элементы:

TabItem с нестандартным Header
Пройди тесты
Лучший чат для C# программистов