Введение в WPF, XAML разметка

WPF для визуализации используется DirectX (аппаратная поддержка). В случае со старыми видеокартами используется программное вычисление эффектов.

WPF визуализирует все элементы пользовательского интерфейса самостоятельно, и
если кнопка при проектировании в ширину была пять сантиметров, то при выполнении
приложения на каком, либо разрешении кнопка останется шириной в пять сантиметров.
В основу масштабирования ставится системный параметр DPI (Dots Per Inch).

System.Threading.DispatcherObject. WPF приложение использует модель STA (Single-Thread Affinity – однопоточная родственность). Это означает, что владельцем всего пользовательского интерфейса является один поток, и любое обращение к элементам управления, созданных в этом потоке, считается не безопасным. DispatcherObject
используется для того, что бы координировать обработку сообщений и реализовывать межпоточное взаимодействие объектов.

System.Windows.DependencyObject. В WPF главный способ взаимодействия с элементами на экране осуществляется через свойства. В WPF используется более мощная модель свойств, которая обладает средствами для уведомления об изменениях, наследовании значений по умолчанию, более экономичное хранение свойств. Конечный результат – это свойство зависимостей (dependency property).


Классы WPF получают поддержку свойств зависимости за счет порождения от DependencyObject .

System.Windows.Media.Visual . Каждый элемент, который отображается в WPF, является производным от класса Visual. Этот класс описывает основную логику для визуализации объекта на окне. Также класс устанавливает связь между управляемыми библиотеками WPF и milcore.dll, которая осуществляет рендеринг.

System.Windows.UIElement . Добавляет поддержку компоновки, ввода, фокуса, событий и команд для объектов.

System.Windows.FrameworkElement. Класс FrameworkElement реализует некоторые члены, которые просто определены в UIElement. Например, UIElement устанавливает фундамент для системы компоновки WPF, но FrameworkElement включает некоторые
свойства (такие как HorizontallAlignment и Margin), которые поддерживают его.

System.Windows.Shapes.Shape . От этого класса наследуются базовые фигуры, такие как Rectangle, Polygon, Ellipse, Line, Path.

System.Windows.Controls.Control . Элемент управления – это компонент, который может взаимодействовать с пользователем. Данный класс вводит дополнительные свойства для управления внешним видом контролов (изменение шрифта, фона и т.д.)
Добавляет возможность поддержки шаблонов для быстрого задания стилей элементам управления.

System.Windows.Controls.ContentControl . Это базовый класс для всех элементов управления, которые содержат единственную порцию содержимого. Примеры некоторых производных классов: Label, Button, Window и т.д.

System.Windows.Controls.ItemControl . Класс описывает все элементы управления, которые содержат в себе коллекцию элементов (TreeView, ListBox, ComboBox)

System.Windows.Controls.Panel . Это базовый класс для всех элементов компоновки – объекты способные хранить один и более дочерних элементов.

XAML

XAML (англ. eXtensible Application Markup Language — расширяемый язык разметки приложений произносится (зэмл)) — основанный на XML язык разметки для декларативного программирования приложений, разработанный Microsoft.

Основы ХAML

Каждый элемент в документе ХAML отображается как экземпляр класса .NET. Имя элемента в точности соответствует имени класса.Например элемент сообщает WPF что должен быть
создан объект Button.

• Как и любой XML-документ код XAML допускает вложение одного элемента внутрь другого. Если вы видите элемент Button внутри элемента Grid , то пользовательский интерфейс включает Grid, содержащий внутри себя Button.

• Свойства каждого класса можно устанавливать через атрибуты. Тем не менее, в некоторых ситуациях атрибуты не достаточно мощны, чтобы справится с этой работой. В этих случаях понадобятся вложенные дескрипторы со специальным синтаксисом.

Загрузка и компиляция XAML

В общем случае существует три разных стиля кодирования которые могут применяться при создании приложения WPF:

• Только код. Это традиционный подход ,используемые в Visual Studio для приложений Windows Forms. Пользовательский интерфейс в нем генерируется операторами кода.

• Код и не компилированная разметка (XAML). Это специализированный подход, который имеет смысл в определенных сценариях, когда нужны исключительно динамичные пользовательские интерфейсы.

• Код и компилированная разметка (BAML). Это предпочтительный подход для WPF, поддерживаемый Visual Studio. Для каждого окна создается шаблон XAML, и этот код XAML компилируется в BAML, после чего встраивается в конечную сборку. Во время выполнения
скомпилированный BAML извлекается и используется для регенерации пользовательского интерфейса.

Обновлено: 16.09.2020 — 18:52

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.