56 lines
3.3 KiB
Markdown
56 lines
3.3 KiB
Markdown
# Lattice.UI
|
||
|
||
[](#)
|
||
[](git.frigat.duckdns.org)
|
||
[](#)
|
||
|
||
**Lattice.UI** — это библиотека нативных элементов управления WinUI 3, реализующая сложную систему докинга и управления окнами в стиле Visual Studio 2026. Она визуализирует абстрактное дерево компоновки из `Lattice.Core` и обеспечивает плавное взаимодействие пользователя с интерфейсом.
|
||
|
||
## ✨ Основные компоненты
|
||
|
||
- **LatticeDockHost**: Корневой оркестратор, управляющий слоями контента и визуальными подсказками докинга.
|
||
- **LatticePane**: Универсальный контейнер для панелей и документов с поддержкой заголовков, контекстных кнопок и закрытия.
|
||
- **LatticeSplitter**: Тонкий интерактивный разделитель для динамического изменения размеров областей.
|
||
- **DockAnchorOverlay**: Система визуальных подсказок («ромб» докинга) и превью зон сброса (Drop Zones).
|
||
- **LatticeContextualToolbar**: Адаптивная панель инструментов, автоматически меняющая набор кнопок при смене фокуса между вкладками.
|
||
|
||
## 🛠 Технологии
|
||
|
||
- **Windows App SDK 1.8+**: Использование последних достижений WinUI 3.
|
||
- **Fluent UI 2**: Дизайн, полностью соответствующий стандартам Windows 11 (Mica Alt, закругления 4-8px, Segoe Fluent Icons).
|
||
- **Design Tokens**: Полная темизация через систему ресурсов (`SharedResources.xaml`).
|
||
|
||
## 📦 Установка и настройка
|
||
|
||
1. Добавьте ссылку на проект `Lattice.UI` в ваше решение.
|
||
2. В файле `App.xaml` вашего приложения подключите стили библиотеки:
|
||
|
||
```xml
|
||
<Application.Resources>
|
||
<ResourceDictionary>
|
||
<ResourceDictionary.MergedDictionaries>
|
||
<ResourceDictionary Source="ms-appx:///Lattice.UI/Themes/Generic.xaml" />
|
||
</ResourceDictionary.MergedDictionaries>
|
||
</ResourceDictionary>
|
||
</Application.Resources>
|
||
```
|
||
|
||
### 🚀 Быстрый старт (XAML)
|
||
```
|
||
<Window
|
||
xmlns:lattice="using:Lattice.UI.Controls">
|
||
|
||
<lattice:LatticeDockHost x:Name="MainHost"
|
||
Manager="{x:Bind ViewModel.LayoutManager}" />
|
||
</Window>
|
||
```
|
||
|
||
### 📐 Математика докинга
|
||
- Библиотека использует алгоритм «Конверта» для расчета зон приземления:
|
||
- Центр: Объединение в группу вкладок.
|
||
- Края (L/R/T/B): Разделение текущей области на две части в соответствующей ориентации.
|
||
|
||
### 🔗 Ссылки
|
||
- Core Engine: Lattice.Core
|
||
- Репозиторий: git.frigat.duckdns.org
|
||
- Разработчик: FrigaT |