Files
Lattice/Lattice.UI/README.md

3.3 KiB
Raw Blame History

Lattice.UI

Windows App SDK Developer License

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 вашего приложения подключите стили библиотеки:
<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