Библиотека элементов управления WPF
WPF включает в себя богатую библиотеку элементов управления (WPF Control Library), которые можно использовать для создания WPF приложений. Включенные в библиотеку элементы управления являются компонентами общего пользовательского интерфейса, которые, как правило, имееются в каждом Windows-приложении, такие как кнопка или текстовое поле. Можно определить собственные пользовательские элементы управления.
Некоторые наиболее часто используемые элементы управления библиотеки элементов управления WPF приведены в следующей таблице. В таблице также приводится простой пример XAML для каждого элемента управления, показаны общие свойства, которые можно задать во время разработки.
Элемент управления | Описание | Пример XAML кода |
Button | Представляет собой типичную интерактивную (clickable) кнопку, которую можно найти в большинстве Windows приложений. | <Button Name="myButton" BorderBrush="Black" BorderThickness="1" Click="myButtonOnClick" ClickMode="Press">Click Me</Button> |
Canvas | Определяет область, в рамках которой можно явно расположить дочерние элементы с помощью использования координат, являющихся относительными к области Canvas. | <Canvas Background="Black" Height="200" Width="200"> <!-- Child controls --> </Canvas> |
ComboBox | Представляет собой раскрывающийся список, прокрутив который, пользователь может сделать выбор. | <ComboBox Name="myComboBox" SelectionChanged= "myComboBox_SelectionChanged"> <ComboBoxItem>Item a</ComboBoxItem> <ComboBoxItem>Item b</ComboBoxItem> </ComboBox> |
Grid | Представляет собой гибкую таблицу, которая может содержать несколько столбцов и строк. Как правило, элемент управления Grid используется для расположения дочерних элементов управления. | <Grid ShowGridLines="True" Width="200" Height="200"> <Grid.ColumnDefinitions> <ColumnDefinition/> <ColumnDefinition/> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition /> </Grid.RowDefinitions> <!-- Child controls --> </Grid> |
Label | Представляет текстовый блок только для чтения, который можно использовать для отображения некоторого статичного текста. | <Label Name="myLabel">Hello</Label> |
StackPanel | Позволяет стековать дочерние элементы управления по горизонтали или по вертикали. | <StackPanel Name="myStackPanel" Orientation="Vertical"> <Label>Item 1</Label> <Label>Item 2</Label> <Label>Item 3</Label> </StackPanel> |
TextBox | Представляет редактируемые поля, которые можно использовать для отображения и охватывания текста. | <TextBox Name="myTextBox"></TextBox> |
Следует отметить, что можно также определить элементы управления динамически с помощью Visual C# в файле кода.
Каждый элемент управления в WPF имеет связанный с ним набор свойств, которые можно использовать для определения внешнего вида и поведения элемента управления. Например, большинство элементов управления имеют свойства Height и Width, которые определяют его размеры, и свойство Margin, указывающее, где элемент управления должен появиться относительно элемета управления макета, в котором он содержится.
Свойства элементов управления можно установить следующим образом:
· Декларативно в окне XAML путем редактирования напрямую XAML определения.
· В окне Properties. Такой подход изменяет XAML определение элементов управления.
· Во время выполнения с помощью кода Visual C#. Этот подход не меняет XAML определение элемента управления.
http://go.microsoft.com/fwlink/?LinkId=192886.
События в приложениях WPF
При создании WPF, ASP.NET и Windows Forms приложений Visual Studio 2010, создаюся приложения, управляемые событиями, т.е. выполняющие код в ответ на события. Любая создаваемая форма и элемент управления предоставляют предопределенный набор событий. Когда происходит одно из этих событий, и существует код, связанный с обработчиком этого события, код вызывается.
Указать события, на которые реагирует элемент управления, можно во время разработки путем редактирования XAML определения элемента управления (указав событие и имя метода обработки события для запуска при наступлении события). Кроме того, можно использовать вкладку Events в окне Properties (эта техника автоматически изменяет XAML определение элемента управления). Необходимо предоставить методы, обрабатывающие события с помощью кода в файле кода.
Следующие примеры кода показывают XAML разметку для элемента управления Button с обработчиком события Click и код C#, определяющий обработчик событий. Когда пользователь нажимает кнопку, вызывается метод myButton_Click. Параметры метода myButton_Click определяются WPF и заполняются сведениями о кнопке и событии во время выполнения.
[XAML control declaration]
<Button Name="myButton" Click="myButton_Click">ClickMe</Button>
[Visual C# event handler]
private void myButton_Click(object sender, RoutedEventArgs e)
{
// Code to do something goes here.
}
В следующем примере показано определение обработчика события закрытия окна для элемента управления Window.
[XAML control declaration]
<Window x:Class="WpfApplication1.MainWindow" Name="myWindow"
xmlns="..."
xmlns:x="..."
Title="MainWindow" Height="350" Width="525" Closing="myWindow_Closing">
</Window>
[Visual C# event handler]
private void myWindow_Closing(object sender,System.ComponentModel.CancelEventArgs e)
{
// Code to do something goes here.
}
http://msdn.microsoft.com/en-us/library/ms753115(VS.100).aspx