Добавлен проект UI

This commit is contained in:
2026-01-07 22:33:42 +03:00
parent b6de0543b7
commit ca5d912c9c
21 changed files with 1188 additions and 4 deletions

56
Lattice.UI/README.md Normal file
View File

@@ -0,0 +1,56 @@
# 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"
Manager="{x:Bind ViewModel.LayoutManager}" />
</Window>
```
### 📐 Математика докинга
- Библиотека использует алгоритм «Конверта» для расчета зон приземления:
- Центр: Объединение в группу вкладок.
- Края (L/R/T/B): Разделение текущей области на две части в соответствующей ориентации.
### 🔗 Ссылки
- Core Engine: Lattice.Core
- Репозиторий: git.frigat.duckdns.org
- Разработчик: FrigaT