Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен
Шрифт:
Интервал:
Закладка:
Роль класса Window
Роль класса System.Windows.Controls.ContentControl
Роль класса System.Windows.Controls.Control
Роль класса System.Windows.FrameworkElement
Роль класса System.Windows.UIElement
Роль класса System.Windows.Media.Visual
Роль класса System.Windows.DependencyObject
Роль класса System.Windows.Threading.DispatcherObject
Синтаксис XAML для WPF
Введение в Kaxaml
Пространства имен XML и "ключевые слова" XAML
Управление видимостью классов и переменных-членов
Элементы XAML, атрибуты XAML и преобразователи типов
Понятие синтаксиса "свойство-элемент" в XAML
Понятие присоединяемых свойств XAML
Понятие расширений разметки XAML
Построение приложений WPF с использованием Visual Studio
Шаблоны проектов WPF
Панель инструментов и визуальный конструктор/редактор XAML
Установка свойств с использованием окна Properties
Обработка событий с использованием окна Properties
Обработка событий в редакторе XAML
Окно Document Outline
Включение и отключение отладчика XAML
Исследование файла Арр.xaml
Отображение разметки XAML окна на код C#
Роль BAML
Разгадывание загадки Main()
Взаимодействие с данными уровня приложения
Обработка закрытия объекта Window
Перехват событий мыши
Перехват событий клавиатуры
Резюме
Глава 25
Обзор основных элементов управления WPF
Элементы управления для работы с Ink API
Элементы управления для работы с документами WPF
Общие диалоговые окна WPF
Краткий обзор визуального конструктора WPF в Visual Studio
Работа с элементами управления WPF в Visual Studio
Работа с окном Document Outline
Управление компоновкой содержимого с использованием панелей
Позиционирование содержимого внутри панелей Canvas
Позиционирование содержимого внутри панелей WrapPanel
Позиционирование содержимого внутри панелей StackPanel
Позиционирование содержимого внутри панелей Grid
Установка размеров столбцов и строк в панели Grid
Панели Grid с типами GridSplitter
Позиционирование содержимого внутри панелей DockPanel
Включение прокрутки в типах панелей
Конфигурирование панелей с использованием визуальных конструкторов Visual Studio
Построение окна с использованием вложенных панелей
Построение системы меню
Визуальное построение меню
Построение панели инструментов
Построение строки состояния
Завершение проектирования пользовательского интерфейса
Реализация обработчиков событий MouseEnter/MouseLeave
Реализация логики проверки правописания
Понятие команд WPF
Внутренние объекты команд
Подключение команд к свойству Command
Подключение команд к произвольным действиям
Работа с командами Open и Save
Понятие маршрутизируемых событий
Роль пузырьковых маршрутизируемых событий
Продолжение или прекращение пузырькового распространения
Роль туннельных маршрутизируемых событий
Более глубокое исследование API-интерфейсов и элементов управления WPF
Работа с элементом управления TabControl
Построение вкладки Ink API
Проектирование панели инструментов
Элемент управления RadioButton
Добавление кнопок сохранения, загрузки и удаления
Добавление элемента управления InkCanvas
Предварительный просмотр окна
Обработка событий для вкладки Ink API
Добавление элементов управления в панель инструментов
Элемент управления InkCanvas
Элемент управления ComboBox
Сохранение, загрузка и очистка данных InkCanvas
Введение в модель привязки данных WPF
Построение вкладки Data Binding
Установка привязки данных
Свойство DataContext
Форматирование привязанных данных
Преобразование данных с использованием интерфейса IValueConverter
Установление привязок данных в коде
Построение вкладки DataGrid
Роль свойств зависимости
Исследование существующего свойства зависимости
Важные замечания относительно оболочек свойств CLR
Построение специального свойства зависимости
Добавление процедуры проверки достоверности данных
Реагирование на изменение свойства
Резюме
Глава 26
Понятие служб визуализации графики WPF
Варианты графической визуализации WPF
Визуализация графических данных с использованием фигур
Добавление прямоугольников, эллипсов и линий на поверхность Canvas
Удаление прямоугольников, эллипсов и линий с поверхности Canvas
Работа с элементами Polyline и Polygon
Работа с элементом Path
"Мини-язык" моделирования путей
Кисти и перья WPF
Конфигурирование кистей с использованием Visual Studio
Конфигурирование кистей в коде
Конфигурирование перьев
Применение графических трансформаций
Первый взгляд на трансформации
Трансформация данных Canvas
Работа с редактором трансформаций Visual Studio
Построение начальной компоновки
Применение трансформаций на этапе проектирования
Трансформация холста в коде
Визуализация графических данных с использованием рисунков и геометрических объектов
Построение кисти DrawingBrush с использованием геометрических объектов
Рисование с помощью DrawingBrush
Включение типов Drawing в DrawingImage
Работа с векторными изображениями
Преобразование файла с векторной графикой в файл XAML
Импортирование графических данных в проект WPF
Взаимодействие с изображением
Визуализация графических данных с использованием визуального уровня
Базовый класс Visual и производные дочерние классы
Первый взгляд на класс DrawingVisual
Визуализация графических данных в специальном диспетчере компоновки
Реагирование на операции проверки попадания
Резюме
Глава 27
Система ресурсов WPF
Работа с двоичными ресурсами
Включение в проект несвязанных файлов ресурсов
Конфигурирование несвязанных ресурсов
Программная загрузка изображения
Встраивание ресурсов приложения
Работа с объектными (логическими) ресурсами
Роль свойства Resources
Определение ресурсов уровня окна
Расширение разметки {StaticResource}
Расширение разметки {DynamicResource}
Ресурсы уровня приложения
Определение объединенных словарей ресурсов
Определение сборки, включающей только ресурсы
Службы анимации WPF
Роль классов анимации
Свойства То, From и By
Роль базового класса Timeline
Реализация анимации в коде C#
Управление темпом анимации
Запуск в обратном порядке и циклическое выполнение анимации
Реализация анимации в разметке XAML
Роль раскадровок