Построение приложения WPF с использованием Visual Studio 2010
62WPF --- Основа WPF --- Построение приложения WPF с использованием Visual Studio 2010
В диалоговом окне New Project (Новый проект) среды Visual Studio 2010 определен набор рабочих пространств проектов WPF, и все они расположены в узле Windows корня Visual C#. На выбор доступны следующие варианты: WPF Application (Приложение WPF), WPF User Control Library (Библиотека пользовательских элементов управления WPF), WPF Custom Control Library (Библиотека настраиваемых элементов управления WPF) и WPF Browser Application (Приложение обозревателя WPF, т.е. ХВАР). Для начала создадим новое приложение WPF.
Помимо установки ссылок на все сборки WPF (PresentationCore.dll, PresentationFoundation.dll и WindowsBase.dll), вы также получаете начальные классы-наследники Window и Application и возможность использования файлов кода и связанный XAML-файл.
В Visual Studio 2010 предусмотрена панель инструментов (Toolbox), доступная через пункт меню View (Вид) и содержащая множество элементов управления WPF. Используя стандартное перетаскивание с помощью мыши, можно поместить любой из этих элементов управления на поверхность визуального конструктора элемента Window. При этом соответствующий XAML будет сгенерирован автоматически. Тем не менее, разметку можно также вводить и вручную, с использованием интегрированного редактора XAML.
Расположение панелей визуального конструктора легко изменять с помощью кнопок, встроенных в разделитель — 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 с использованием встроенного редактора кистей:
Для организации обработки событий, связанных с определенным элементом управления, также может использоваться окно Properties, но на этот раз нужно перейти на вкладку Events (События). Удостоверьтесь, что на поверхности визуального конструктора выбрана кнопка, в окне Properties перейдите на вкладку Events и найдите событие Click. Среда Visual Studio 2010 автоматически построит обработчик событий со следующим именем ИмяЭлементаУправления_ИмяСобытия.
Пока кнопка не переименована, в окне Properties отображается сгенерированный обработчик событий по имени button1_Click.
К тому же Visual Studio 2010 сгенерирует соответствующий код C# в файле кода для окна. Здесь можно добавить любой код, который должен выполняться по щелчку на кнопке:
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-среда сгенерирует соответствующий обработчик в файле кода C#.
Теперь, когда вы ознакомились с базовыми инструментами, применяемыми внутри Visual Studio 2010 для манипуляций приложениями WPF, давайте воспользуемся этой IDE-средой для построения примера программы, которая проиллюстрирует процесс разбора XAML во время выполнения. Прежде, чем начать, полностью удалите только что созданную разметку, описывающую Button, а также удалите код обработчика события C#.