Переход с докинга WinForms и WPF на Docking UI для Avalonia¶
Если вы создавали интерфейсы в стиле IDE с менеджером докинга в Windows Forms или WPF и переходите на Avalonia UI, то Docking UI библиотеки Eremex Avalonia UI Controls покажется вам знакомым. Библиотека предназначена только для Avalonia UI: она не содержит контролов для Windows Forms или WPF. Компонент Dock Manager создаёт панели инструментов, которые можно закреплять, автоматически скрывать и делать плавающими, а также области документов с вкладками — всё это в кроссплатформенном приложении Avalonia UI (Windows, Linux, macOS).
В этой статье знакомые вам понятия сопоставляются со строительными блоками библиотеки и указывается, где найти подробности.
Карта понятий¶
| Что вам нужно | Строительный блок в библиотеке Eremex |
|---|---|
| Компонент, управляющий всем размещением докинга | DockManager - см. Dock Manager и элементы докинга |
| Окно инструментов (Solution Explorer, Properties, Output и т. д.) | DockPane - см. Dock-панели и контейнеры |
| Вкладка документа в основной области (MDI с вкладками) | DocumentPane - см. Document-панели |
| Группа вкладок | TabbedGroup (контейнер вкладок для Dock-панелей) и DocumentGroup (контейнер вкладок для Document-панелей) |
| Панели рядом или друг над другом, разделённые сплиттерами | DockGroup (контейнер с разделением) - см. Разделённые панели |
| Панель, выдвигающаяся от края окна | Автоскрытие - см. Автоскрытые панели |
| Панель в отдельном окне | FloatGroup - см. Плавающие панели |
| Направляющие перетаскивания, показывающие, куда будет закреплена панель | Направляющие докинга - см. Dock Manager и элементы докинга, а также событие DockManager.CustomizeDockGuide (версия 1.5), позволяющее скрыть определённые направляющие |
| Переключение окон по Ctrl+Tab | Переключатель документов |
| Сохранение и восстановление размещения между сеансами | Сохранение и восстановление размещения панелей |
| Построение размещения в коде (упорядочивание, разделение, перевод в плавающий режим, активация, закрытие) | Выполнение операций закрепления в коде |
| Размещение, управляемое ViewModel | Использование паттерна MVVM для заполнения элементами закрепления |
Отличия, которые стоит знать¶
- Сначала XAML. Размещение объявляется в XAML (Dock Manager содержит Dock-панели, Document-панели и группы), а операции докинга можно также выполнять в коде.
- Поддержка MVVM. Панели можно создавать из коллекции ViewModel, поэтому размещение докинга вписывается в MVVM-приложение без code-behind.
- Сериализация размещения. Размещение Dock-панелей и документов можно сохранять и восстанавливать с помощью методов
DockManager.SaveLayoutиDockManager.RestoreLayout. - Кроссплатформенность. Один и тот же Docking UI работает на всех платформах, которые поддерживает Avalonia UI.
Минимальное размещение¶
В этом примере показана структура типичного размещения: область документов с панелью Error List под ней и контейнер вкладок с двумя панелями инструментов рядом с ними. Пошаговое описание приведено в статье Начало работы с Docking.
xmlns:mxd="https://schemas.eremexcontrols.net/avalonia/docking"
<mxd:DockManager>
<mxd:DockGroup>
<mxd:DockGroup Orientation="Vertical">
<mxd:DocumentGroup></mxd:DocumentGroup>
<mxd:DockPane Header="Error List"/>
</mxd:DockGroup>
<mxd:TabbedGroup>
<mxd:DockPane Header="Properties"/>
<mxd:DockPane Header="Debug"/>
</mxd:TabbedGroup>
</mxd:DockGroup>
</mxd:DockManager>
Что дальше¶
* Эта страница переведена с использованием технологий машинного перевода.