Files
Lattice/Lattice.UI/README.md

56 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Lattice.UI
[![Windows App SDK](img.shields.io)](#)
[![Developer](img.shields.io)](git.frigat.duckdns.org)
[![License](img.shields.io)](#)
**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"
Service="{x:Bind ViewModel.LayoutService}" />
</Window>
```
### 📐 Математика докинга
- Библиотека использует алгоритм «Конверта» для расчета зон приземления:
- Центр: Объединение в группу вкладок.
- Края (L/R/T/B): Разделение текущей области на две части в соответствующей ориентации.
### 🔗 Ссылки
- Core Engine: Lattice.Core
- Репозиторий: git.frigat.duckdns.org
- Разработчик: FrigaT