
- •Глава 6. Проектирование модуля рисования
- •6.1. Основа wpf Windows Presentation Foundation (wpf) — это библиотека для создания пользовательских интерфейсов для интеллектуальных клиентских приложений.
- •6.1.1.Архитектура wpf
- •6.1.2. Иерархия классов
- •6.2. Особенности xaml
- •Определение MainWindow в xaml
- •Пространства имен xaml
- •Метод InitializeComponent()
- •Именование элементов
- •6.2.1. Компоновка
- •Понятие компоновки в wpf
- •Контейнеры компоновки
- •Свойства компоновки
- •WrapPanel
- •DockPanel
- •Настройка Grid
- •GridSplitter - разделенные окна
- •6.3.Canvas
- •Z-порядок
- •6.4. Построение приложения wpf с использованием Visual Studio 2008
- •6.4.1.Проектирование графического интерфейсного окна
6.4. Построение приложения wpf с использованием Visual Studio 2008
В диалоговом окне New Project (Новый проект) среды Visual Studio 2008 определен набор рабочих пространств проектов WPF, и все они расположены в узле Windows корня Visual С#. На выбор доступны следующие варианты: WPF Application (Приложение WPF), WPF User Control Library (Библиотека пользовательских элементов управления WPF), WPF Custom Control Library (Библиотека настраиваемых элементов управления WPF) и WPF Browser Application (Приложение обозревателя WPF, т.е. ХВАР). Создаем новое приложение WPF.
Рис.6.6.Окно создания нового приложения
Помимо установки ссылок на все сборки WPF (PresentationCore.dll, PresentationFoundation.dll и WindowsBase.dll), также получаем начальные классы-наследники Window и Application и возможность использования файлов кода и связанный XAML-файл.
В Visual Studio 2008 предусмотрена панель инструментов (Toolbox), доступная через пункт меню View (Вид) и содержащая множество элементов управления WPF (рис.6.7.). Используя стандартное перетаскивание с помощью мыши, можно поместить любой из этих элементов управления на поверхность визуального конструктора элемента Window. При этом соответствующий XAML будет сгенерирован автоматически. Тем не менее, разметку можно также вводить и вручную, с использованием интегрированного редактора XAML.
Рис.6.7. Панель элементов
Расположение панелей визуального конструктора легко изменять с помощью кнопок, встроенных в разделитель — Swap Panels (Поменять панели), которая помечена стрелками вверх/вниз, Horizontal Split (Разделить горизонтально) и Vertical Split (Разделить вертикально) и т.д.
После помещения элементов управления на поверхность визуального конструктора можно использовать окно Properties (Свойства) для установки значений свойств выбранного элемента управления, а также для создания обработчиков событий для выбранного элемента. Для примера перетащим элемент управления — кнопку на любое место поверхности визуального конструктора. В результате Visual Studio сгенерирует XAML-разметку вроде показанной ниже:
<Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="35,43,0,0"
Name="button1" VerticalAlignment="Top" Width="75" />
Теперь с помощью окна Properties изменим цвет фона (Background) элемента Button с использованием встроенного редактора кистей (рис.6.8.):
Рис.6.8. Изменение цвета
Для организации обработки событий, связанных с определенным элементом управления, также может использоваться окно Properties, но на этот раз нужно перейти на вкладку Events (События). Удостоверьтесь, что на поверхности визуального конструктора выбрана кнопка, в окне Properties перейдите на вкладку Events и найдите событие Click. Среда Visual Studio 2008 автоматически построит обработчик событий со следующим именем ИмяЭлементаУправления_ИмяСобытия.
Пока кнопка не переименована, в окне Properties отображается сгенерированный обработчик событий по имени buttonl Click.
К тому же Visual Studio 2008 сгенерирует соответствующий код С# в файле кода для окна. Здесь можно добавить любой код, который должен выполняться по щелчку на кнопке:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void button1_Click(object sender, RoutedEventArgs e)
{
}}
Обрабатывать событие можно также непосредственно в редакторе XAML. Для примера поместим курсор мыши внутрь элемента <Button> и введем имя события MouseEnter, а за ним — знак равенства. Visual Studio отобразит все совместимые обработчики из файла кода, а также опцию <New Event Handler> (Новый обработчик события). Двойной щелчок на <New Event Handler> приводит к тому, что IDE-среда сгенерирует соответствующий обработчик в файле кода С#.