# **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();
```