# **Lattice.Studio** `Lattice.Studio` — это модуль, предоставляющий готовую визуальную оболочку для приложений на WinUI 3, оформленную в стиле Visual Studio 2026. Он включает: - нативный Windows 11 TitleBar, - слот для меню, - контекстный тулбар, - область уведомлений, - хост для докинга, - статус‑бар, - тему оформления (Dark/Light), - и главное — **готовое окно верхнего уровня `LatticeStudioWindow`**. `LatticeStudioShell` служит визуальным контейнером, а `LatticeStudioWindow` — удобной точкой входа для реальных приложений. --- ## 📦 Состав модуля ### **1. LatticeStudioShell.xaml** Определяет визуальную структуру IDE‑оболочки: - **TitleBar**: - заголовок, - иконка (`IconSource`), - слот для меню (`MenuContent`), - drag‑region. - **LatticeContextualToolbar** — контекстный тулбар. - **NotificationArea** — стек уведомлений. - **LatticeDockHost** — хост для системы докинга. - **StatusContent** — слот для статус‑бара. ### **2. LatticeStudioShell.xaml.cs** Реализует логику оболочки: - интеграция с сервисами: - `ILayoutService`, - `IContextService`, - `INotificationService`; - обновление тулбара при смене контекста; - отображение уведомлений через `InfoBar`; - настройка окна: - `ExtendsContentIntoTitleBar`, - кастомный TitleBar, - Mica Alt backdrop. ### **3. LatticeStudioWindow.xaml / .cs** Готовое окно верхнего уровня: - содержит `LatticeStudioShell`, - проксирует его свойства наружу: - `Title`, - `Subtitle`, - `MenuContent`, - `StatusContent`, - `TitleBarIcon`, - предоставляет удобный метод инициализации: - `Initialize(...)` — с пользовательскими сервисами, - `Initialize()` — со стандартными реализациями. Используется как базовый класс для `MainWindow`. ### **4. Themes/StudioThemes.xaml** Содержит тему оформления: - цвета панелей, - цвета заголовков, - акцентные цвета, - поддержка Light/Dark. --- ## ✨ Возможности - Готовая IDE‑оболочка для WinUI 3. - Интеграция с Lattice.Core: - докинг, - контексты, - команды. - Нативный Windows 11 TitleBar. - Встроенная система уведомлений. - Слоты для меню и статус‑бара. - Тема в стиле Visual Studio 2026. - Готовое окно `LatticeStudioWindow` для быстрого старта. --- ## 🚀 Быстрый старт ## 🅰 Вариант 1 — минимальный XAML (всё в C#) ### **MainWindow.xaml** ```xml ``` ### **MainWindow.xaml.cs** ```csharp public sealed partial class MainWindow : LatticeStudioWindow { public MainWindow() { InitializeComponent(); Title = "My App"; MenuContent = BuildMenu(); StatusContent = new TextBlock { Text = "Ready" }; Initialize(); // стандартные сервисы } } ``` --- ## 🅱 Вариант 2 — декларативный XAML (меню/статус‑бар в XAML) ### **MainWindow.xaml** ```xml ``` ### **MainWindow.xaml.cs** ```csharp public sealed partial class MainWindow : LatticeStudioWindow { public MainWindow() { InitializeComponent(); Title = "My App"; Initialize(); // стандартные сервисы } } ``` --- ## 🧩 Инициализация вручную Если нужны свои сервисы: ```csharp Initialize(layoutService, contextService, actions, notificationService); ``` Если нужен быстрый старт: ```csharp Initialize(); ```