Choosing A Custom Control Type (рус: Выбор типа пользовательского компонента UI)
Avalonia позволяет использовать различные способы создания пользовательских компонентов, которые помогают решать конкретные потребности в приложении.
Понимание различных типов пользовательских компонентов, поможет вам эффективнее выбирать более подходящий вариант решения проблемы.
Тремя самыми распространенными типами являются UserControls (рус: Пользовательские компоненты)
, lookless controls (рус: компоненты без внешнего вида)
и custom-drawn controls (рус: нарисованные компоненты)
.
UserControl (рус: Пользовательские компоненты)
UserControl (рус: Пользовательские компоненты)
- это высокоуровневый подход к созданию пользовательских компонентов в Avalonia. Он позволяет создать компонент, путем объединения существующих и определения макета через XAML.
UserControl (рус: Пользовательские компоненты)
действует как контейнер, который инкапсулирует несколько компонентов и обеспечивает единый UI.
Как правило, UserControls (рус: Пользовательские компоненты)
используются для представления в приложении специализированных view
, таких как "Сведения о пользователе", и не должны использоваться в UI как элементы общего назначения.
Создание UserControl (рус: Пользовательского компонента)
состоит из нескольких шагов:
-
Define the XAML (рус: Определить XAML): Создание XAML-файла для нового
UserControl (рус: Пользовательского компонента)
, в котором определяются макет и внешний вид компонента, путем размещения других компонентов, изменения свойств и применения стилей. -
Code-behind: Опционально, вы можете добавить
code-behind
логику для обработки событий, изменения поведения или внесения дополнительной функциональности для создаваемого компонента. -
Reuse and Customization (рус: Переиспользование и настройка): Новый компонент может быть легко переиспользован и настроен в приложении. Это особенно полезно, если вы хотите инкапсулировать определенный набор компонентов или поведений в переиспользуемом компоненте или
view
.
Templated (Lookless) Controls (рус: Шаблонные компоненты (без внешнего вида))
Templated controls (рус: Шаблонные компоненты)
(также известные как Lookless controls (рус: компоненты без внешнего вида
) - это более продвинутые и гибкий подход к созданию пользовательских компонентов в Avalonia.
Он отделяет поведение и логику компонента от внешнего вида, что позволяет разработчику создавать стили и шаблоны для компонента.
С помощью templated controls (рус: шаблонных компонентов)
вы определяете поведение и свойства комопнента в code-behind
классе, в то время как визуальное представление задается с помощью определенных в XAML шаблонов компонента.
Такое разделение позволяет разработ чику настраивать внешний вид компонента без изменения его базового поведения.
Templated controls (рус: Шаблонные компоненты)
обычно используются для элементов UI общего назначения, которые не являются специализированными для бизнес-логики и требуют различных тем и стилей.
Большинство built-in controls (рус: встроенных компонентов), поддерживаемых Avalonia, являются templated controls (рус: шаблонными компонентами)
.
Создание templated control (рус: шаблонного компонента)
состоит из следующих шагов:
-
Определите класс компонента: Создайте новый класс и наследуйте его от
TemplatedControl
. Данный класс определяет поведение, свойства и события компонента. -
Control Template (рус: Шаблон компонента): Для определения внешнего вида и структуры компонента, создайте в XAML
ControlTheme (рус: тему компонента)
.Control template (рус: Шаблон компонента)
оопределяет части компонента и его стили. -
Стилизация и шаблонизация: Разработчик приложения может настроить внешний вид компонента путем изменения
control template (рус: шаблона компонента)
или применив стили. Это обеспечивает согласованный и унифицированный дизайн интерфейса в приложении.
Templated controls (рус: Шаблонные компоненты)
обеспечивают отличную гибкость и возможность переиспользования, что делает их идеальными для ситуаций, где требуется проводить стилизацию под различные темы или адаптировать под предпочтения пользователя.
Custom-drawn Controls (рус: Нарисованные компоненты)
Custom-drawn controls (рус: Нарисованные компоненты)
обеспечивают наибольшую гибкость настроек в Avalonia. С помощью него, вы получаете полны й контроль над отображением визуальных элементов компонента, что позволяет создавать уникальные и комплексные варианты отображения.
Custom-drawn controls (рус: Нарисованные компоненты)
обычно используются в ситуациях, когда требуется отобразить не интерактивный графический элемент. Как правило, он не зависит от выбранной темы.
Для создание custom-drawn control (рус: нарисованного компонента)
, вы должны переопределить метод Render
и использовать низкоуровневое API для отрисовки внешнего вида компонета, такое как DrawingContext
. Данный подход обеспечивает полный контроль над каждым пикселем отображаемого компонента.
Создание custom-drawn control (рус: нарисованного компонента)
состоит из следующих шагов:
-
Определите класс компонента: Создайте новый класс, наследованный от
Control
. Он будет определять поведение и логику отображения компонента. -
Переопределите метод отрисовки: В классе
Control
, переопределите методRender
, а затем используйтеDrawingContext
для отрисовки его содержимого.