Свойство Source устанавливается в http://parallel. ru, поэтому элемент управления <Frame> переходит к этому web-сайту.
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas. microsoft. com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas. /winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Frame Source="http://parallel. ru/>
</Window>
3.2.3 Элементы управления с озаглавленным содержимым наследуются от базового класса HeaderedContentControl, который, в свою очередь, унаследован от базового класса ContentControl.
Класс HeaderedContentControl имеет свойство Header для определения содержимого заголовка и HeaderTemplate для полной настройки заголовка.
Классы элементов управления, унаследованные от HeaderedContentControl, перечислены в таблице 3.4.
Таблица 3.4
Класс | Описание |
Expander | Позволяет создать «расширенный» режим отображения информации, управляемый пользователем. В свёрнутом режиме показана только информация заголовков, а в развёрнутом - всё содержимое. |
GroupBox | Представляет рамку и заголовок для группировки элементов |
TabItem | Это элементы внутри класса TabControl. Свойство Header определяет содержимое заголовка, отображаемого на вкладках TabControl. |
Следующий пример демонстрирует простое использование элемента управления <Expander>. Содержимое свойства Header может быть развёрнуто, элемент управляет <TextBlock>, который содержит текст расширения. Чтобы изменять текст элемента управления <Expander> при его развёртывании, необходимо создать триггер.
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas. /winfx/2006/xaml/presentation"
xmlns:x="http://schemas. /winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<StackPanel>
<TextBlock Padding="5">5В070400</TextBlock>
<Expander Header="Подробности">
<Border Height="200" Width="200" Background="LightGray">
<TextBlock TextWrapping="Wrap" xml:space="preserve" >
Специальность бакалавриата
"Вычислительная техника и программное обеспечение"
в соответствии с классификатором ГОСО РК
</TextBlock>
</Border>
</Expander>
</StackPanel>
</Window>
Рисунок 3.6 иллюстрирует вид элемента в свёрнутом и развёрнутом виде.

Рисунок 3.6
Класс GroupBox - наиболее простой из трёх элементов управления, порождённых от HeaderedContentControl. Он имеет вид прямоугольника с закруглёнными углами и заголовком.
Ниже приведён пример XAML-описания, внешний вид которого показан на рисунке 3.7.
<GroupBox Header="Группа переключателей" Padding="5" Margin="5" VerticalAlignment="Top" BorderThickness="3" BorderBrush="DarkBlue">
<StackPanel>
<RadioButton Margin="5" Name="rb1">Первый</RadioButton>
<RadioButton Margin="5" Name="rb2">Второй</RadioButton>
<RadioButton Margin="5" Name="rb3">Третий</RadioButton>
<Button Margin="5">Сохранить</Button>
</StackPanel>
</GroupBox>

Рисунок 3.7
Элемент <GroupBox> требует контейнер компоновки (в примере <StackPanel>) для размещения содержимого. Он часто используется для группировки небольшого количества взаимосвязанных элементов управления. В классе GroupBox нет никаких встроенных функций, поэтому его можно применять без ограничений.
Обработку переключателей примера на рисунке 3.7 может обеспечивать код:
private void Button_Click(object sender, RoutedEventArgs e)
{
if (rb1.IsChecked == true)
{
// Первая
}
else
if (rb2.IsChecked == true)
{
// Вторая
}
else
{
// Третья
}
}
В примере группируются <RadioButton>, но эти элементы можно размещать в любом контейнере. Элемент <GroupBox> предоставляет только их окаймление с заголовком.
3.2.4 WPF содержит много элементов управления, работающих со структурированным в виде списка или иерархии содержимым: от простых элементов ListBox и ComboBox, и до более специализированных элементов, таких как ListView, TreeView, TabControl и ToolBar. Все эти элементы управления являются потомками класса ItemsControl (а он порождён от класса Control).
Классы, унаследованные от ItemsControl, перечислены в таблице 3.5.
Таблица 3.5
Класст | Описание |
Menu | Классы Menu и унаследованы от абстрактного базового класса MenuBase |
ContextMenu | Пользователю можете представить меню, помещая ContextMenu элементы Menuitem в список элементов и ассоциируя с ними команды. |
StatusBar | Элемент управления StatusBar обычно отображается в нижней части окна приложения, предоставляя пользователю информацию о состоянии, и содержит элементы StatusBarItem. |
TreeView | Элемент управления TreeView применяется для иерархического представления элементов. |
ListBox | Классы ListBox, ComboBox и TabControl имеют общий абстрактный базовый класс - Selector. Базовый класс позволяет выбирать элементы из списка. |
ComboBox | Имеет дополнительный элемент управления Button для отображения элементов после щелчка на кнопке. |
TabControl | Содержимое может быть упорядочено в табличной форме. |
DataGrid | Настраиваемая экранная сетка (таблица) для отображения данных. |
Класс ItemsControl предоставляет два способа заполнения списка элементов. Наиболее простым способом является добавление элементов прямо в коллекцию Items с помощью кода или XAML. Однако в WPF чаще применяется привязка данных. В этом случае свойству ItemsSource присваивается объект, содержащий коллекцию элементов данных, которые нужно отобразить.
В иерархии классов, которая начинается с ItemsControl, большой ветвью являются селекторы, к которым относятся ListBox, ComboBox и TabControl. Эти классы являются потомками класса Selector и имеют свойства, позволяющие определить выделенный в данный момент элемент (SelectedItem) или его позицию (SelectedIndex).
Кроме того иерархии, имеются элементы управления, которые могут содержать списки элементов, но не поддерживают выбор. К ним относятся классы для меню, панелей инструментов и деревьев - все они порождены от ItemsControl, но не являются селекторами.
Класс ListBox представляет распространённый компонент среды Windows - списки переменной длины, которые позволяют пользователю выбрать один из элементов. Класс ListBox допускает множественный выбор, если его свойству SelectionMode присвоить значение Multiple или Extended. В режиме Multiple можно выбрать любой элемент или отменить его выбор, щёлкнув на нем. В режиме Extended необходимо прижать клавишу CTRL, чтобы выбрать дополнительные элементы, или клавишу SHIFT, чтобы выбрать диапазон элементов. В любом виде списка с множественным выбором для получения всех выделенных элементов вместо свойства Selectedltem используется коллекция Selectedltems.
Чтобы добавить элементы в элемент ListBox, можно вложить в него элементы ListBoxItem. Например, элемент <ListBox>, который содержит список цветов:
<ListBox Width="Auto" Margin="10" FontSize="14" Name="lb2" SelectionChanged="lb2_SelectionChanged">
<ListBoxItem Foreground="Green">Green</ListBoxItem>
<ListBoxItem Foreground="Blue">Blue</ListBoxItem>
<ListBoxItem Foreground="Yellow">Yellow</ListBoxItem>
<ListBoxItem Foreground="Red">Red</ListBoxItem>
</ListBox>
Обработку элементов списка lb2 обеспечивает код:
private void lb2_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (!(lb2.SelectedItem == null))
{
if (lb2.SelectedIndex == 3)
MessageBox. Show("Red");
}
}
ListBox является довольно гибким элементом управления. Он может хранить не только объекты ListBoxItem, но и любые произвольные элементы.
Ниже представлен пример, в котором <ListBox> содержит вложенные элементы <StackPanel>, которые используются для комбинирования текста и изображений:
Например:
<ListBox Width="Auto" Margin="10" Name="lb1" SelectionChanged="lb1_SelectionChanged">
<StackPanel Orientation="Horizontal">
<Image Source="d:\И. png" HorizontalAlignment="Left" Height="30" Width="30"></Image>
<Label>Строка 1</Label>
</StackPanel>
<StackPanel Orientation="Horizontal">
<Image Source="d:\С. png" HorizontalAlignment="Left" Height="30" Width="30"></Image>
<Label>Строка 2</Label>
</StackPanel>
<StackPanel Orientation="Horizontal">
<Image Source="d:\Р. png" HorizontalAlignment="Left" Height="30" Width="30"></Image>
<Label>Строка 3</Label>
</StackPanel>
<StackPanel Orientation="Horizontal">
<Image Source="d:\П. png" HorizontalAlignment="Left" Height="30" Width="30"></Image>
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
Основные порталы (построено редакторами)
