Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
Глава 25
Элементы управления, компоновки, события и привязка данных в WPF
В главе 24 была представлена основа программной модели WPF, включая классы
Window
Application
Здесь будут рассматриваться некоторые важные темы, связанные с элементами управления WPF, такие как программная модель привязки данных и применение команд управления. Вы узнаете, как работать с интерфейсами Ink API и Documents API, которые позволяют получать ввод от пера (или мыши) и создавать форматированные документы с использованием протокола XML Paper Specification.
Обзор основных элементов управления WPF
Если вы не являетесь новичком в области построения графических пользовательских интерфейсов, то общее назначение большинства элементов управления WPF не должно вызывать много вопросов. Независимо от того, какой набор инструментов для создания графических пользовательских интерфейсов вы применяли в прошлом (например, VB6, MFC, Java AWT/Swing, Windows Forms, GTK+/GTK# и т.п.), основные элементы управления WPF, перечисленные в табл. 25.1, вероятно покажутся знакомыми.

На заметку! Целью настоящей главы не является рассмотрение абсолютно всех членов каждого элемента управления WPF. Взамен вы получаете обзор разнообразных элементов управления с упором на лежащую в основе программную модель и ключевые службы, общие для большинства элементов управления WPF.
Элементы управления для работы с Ink API
В дополнение к общепринятым элементам управления WPF, упомянутым в табл. 25.1, инфраструктура WPF определяет элементы управления для работы с интерфейсом Ink API. Данный аспект разработки WPF полезен при построении приложений для Tablet PC, т.к. он позволяет захватывать ввод от пера. Тем не менее, это вовсе не означает, что стандартное настольное приложение не может задействовать Ink API, поскольку те же самые элементы управления могут работать с вводом от мыши.
Пространство имен
System.Windows.Ink
PresentationCore.dll
Stroke
StrokeCollection
InkCanvas
InkPresenter
System.Windows.Controls
PresentationFramework.dll
Элементы управления для работы с документами WPF
Вдобавок инфраструктура WPF предоставляет элементы управления для расширенной обработки документов, позволяя строить приложения, которые включают функциональность в стиле Adobe PDF. С применением типов из пространства имен
System.Windows.Documents
PresentationFramework.dll
Тем не менее, "за кулисами" элементы управления документов не используют API-интерфейсы Adobe PDF, а взамен работают с API-интерфейсом XML Paper Specification (XPS). Конечные пользователи никакой разницы не заметят, потому что документы PDF и XPS имеют практически идентичный вид и поведение. В действительности доступно множество бесплатных утилит, которые позволяют выполнять преобразования между указанными двумя файловыми форматами на лету. Из-за ограничений по объему такие элементы управления в текущем издании не рассматриваются.
Общие диалоговые окна WPF
Инфраструктура WPF также предлагает несколько общих диалоговых окон, таких как
OpenFileDialog
SaveFileDialog
Microsoft.Win32
PresentationFramework.dll
ShowDialog()
using Microsoft.Win32;
// Для краткости код не показан.
private void btnShowDlg_Click(object sender, RoutedEventArgs e)
{
<b> // Отобразить диалоговое окно сохранения файла.</b>
SaveFileDialog saveDlg = new SaveFileDialog();
saveDlg.ShowDialog();
}
Как и можно было ожидать, в этих классах поддерживаются разнообразные члены, которые позволяют устанавливать фильтры файлов и пути к каталогам, а также получать доступ к выбранным пользователем файлам. Некоторые диалоговые окна применяются в последующих примерах; кроме того, будет показано, как строить специальные диалоговые окна для получения пользовательского ввода.
Краткий обзор визуального конструктора WPF в Visual Studio
Большинство стандартных элементов управления WPF упаковано в пространство имен
System.Windows.Controls
PresentationFramework.dll
Подобно другим инфраструктурам для построения пользовательских интерфейсов в Visual Studio такие элементы управления можно перетаскивать на поверхность визуального конструктора WPF и конфигурировать их в окне Properties (Свойства), как было показано в главе 24. Хотя Visual Studio сгенерирует приличный объем разметки XAML автоматически, нет ничего необычного в том, чтобы затем редактировать разметку вручную. Давайте рассмотрим основы.
Работа с элементами управления WPF в Visual Studio
Вы можете вспомнить из главы 24, что после помещения элемента управления WPF на поверхность визуального конструктора Visual Studio в окне Properties (или прямо в разметке XAML) необходимо установить свойство
x:Name
Button