DragAndDrop core

This commit is contained in:
FrigaT
2026-01-18 16:33:35 +03:00
parent 9ea82af329
commit 79bdd8bc62
229 changed files with 21214 additions and 2494 deletions

View File

@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="utf-8"?>
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!-- Background Brushes -->
<SolidColorBrush x:Key="Fluent.Brush.Background.Primary" Color="#FFFFFFFF" />
<SolidColorBrush x:Key="Fluent.Brush.Background.Secondary" Color="#FFF3F2F1" />
<SolidColorBrush x:Key="Fluent.Brush.Background.Tertiary" Color="#FFE1DFDD" />
<SolidColorBrush x:Key="Fluent.Brush.Background.Quaternary" Color="#FFC8C6C4" />
<!-- Text Brushes -->
<SolidColorBrush x:Key="Fluent.Brush.Text.Primary" Color="#FF000000" />
<SolidColorBrush x:Key="Fluent.Brush.Text.Secondary" Color="#FF605E5C" />
<SolidColorBrush x:Key="Fluent.Brush.Text.Disabled" Color="#FFA19F9D" />
<SolidColorBrush x:Key="Fluent.Brush.Text.OnAccent" Color="#FFFFFFFF" />
<!-- Accent Brushes -->
<SolidColorBrush x:Key="Fluent.Brush.Accent.Default" Color="#FF0078D4" />
<SolidColorBrush x:Key="Fluent.Brush.Accent.Secondary" Color="#FF005A9E" />
<SolidColorBrush x:Key="Fluent.Brush.Accent.Tertiary" Color="#FF004275" />
<SolidColorBrush x:Key="Fluent.Brush.Accent.Action" Color="#FF0078D4" />
<!-- Border Brushes -->
<SolidColorBrush x:Key="Fluent.Brush.Border.Default" Color="#FF8A8886" />
<SolidColorBrush x:Key="Fluent.Brush.Border.Secondary" Color="#FFC8C6C4" />
<SolidColorBrush x:Key="Fluent.Brush.Border.Accent" Color="#FF0078D4" />
<!-- System Brushes -->
<SolidColorBrush x:Key="Fluent.Brush.System.Success" Color="#FF107C10" />
<SolidColorBrush x:Key="Fluent.Brush.System.Warning" Color="#FFF7630C" />
<SolidColorBrush x:Key="Fluent.Brush.System.Error" Color="#FFD13438" />
<SolidColorBrush x:Key="Fluent.Brush.System.Info" Color="#FF0078D4" />
<!-- Card & Layer Brushes -->
<SolidColorBrush x:Key="Fluent.Brush.Card.Background" Color="#FFFFFFFF" />
<SolidColorBrush x:Key="Fluent.Brush.Card.Stroke" Color="#FFE1DFDD" />
<SolidColorBrush x:Key="Fluent.Brush.Layer.Default" Color="#FFF3F2F1" />
<SolidColorBrush x:Key="Fluent.Brush.Layer.OnAcrylic" Color="#FFF3F2F1" />
<!-- Divider Brushes -->
<SolidColorBrush x:Key="Fluent.Brush.Divider.Default" Color="#FFE1DFDD" />
<SolidColorBrush x:Key="Fluent.Brush.Divider.Strong" Color="#FFC8C6C4" />
</ResourceDictionary>

View File

@@ -0,0 +1,50 @@
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!-- Visual Studio 2026 Inspired Colors (Dark Theme) -->
<Color x:Key="VS2026.Color.Background.Default">#FF1E1E1E</Color>
<Color x:Key="VS2026.Color.Background.Secondary">#FF252526</Color>
<Color x:Key="VS2026.Color.Background.Tertiary">#FF2D2D30</Color>
<Color x:Key="VS2026.Color.Background.Quaternary">#FF3E3E42</Color>
<Color x:Key="VS2026.Color.Background.CommandBar">#FF333337</Color>
<!-- Text Colors -->
<Color x:Key="VS2026.Color.Text.Primary">#FFFFFFFF</Color>
<Color x:Key="VS2026.Color.Text.Secondary">#FFCCCCCC</Color>
<Color x:Key="VS2026.Color.Text.Disabled">#FF656565</Color>
<Color x:Key="VS2026.Color.Text.OnAccent">#FFFFFFFF</Color>
<Color x:Key="VS2026.Color.Text.Link">#FF4EC9B0</Color>
<!-- VS2026 Accent Colors (Cyan/Green inspired) -->
<Color x:Key="VS2026.Color.Accent.Default">#FF4EC9B0</Color>
<!-- VS Cyan -->
<Color x:Key="VS2026.Color.Accent.Secondary">#FF2D957D</Color>
<Color x:Key="VS2026.Color.Accent.Tertiary">#FF1F6F5C</Color>
<Color x:Key="VS2026.Color.Accent.Action">#FF569CD6</Color>
<!-- VS Light Blue -->
<!-- Border Colors -->
<Color x:Key="VS2026.Color.Border.Default">#FF3E3E42</Color>
<Color x:Key="VS2026.Color.Border.Secondary">#FF2D2D30</Color>
<Color x:Key="VS2026.Color.Border.Accent">#FF4EC9B0</Color>
<Color x:Key="VS2026.Color.Border.Tab.Active">#FF569CD6</Color>
<Color x:Key="VS2026.Color.Border.Tab.Inactive">#FF3E3E42</Color>
<!-- System Colors -->
<Color x:Key="VS2026.Color.System.Success">#FF4EC9B0</Color>
<Color x:Key="VS2026.Color.System.Warning">#FFF4874E</Color>
<Color x:Key="VS2026.Color.System.Error">#FFF48771</Color>
<Color x:Key="VS2026.Color.System.Info">#FF569CD6</Color>
<!-- Panel & Tool Window Colors -->
<Color x:Key="VS2026.Color.Panel.Background">#FF252526</Color>
<Color x:Key="VS2026.Color.Panel.Border">#FF3E3E42</Color>
<Color x:Key="VS2026.Color.ToolWindow.Background">#FF2D2D30</Color>
<Color x:Key="VS2026.Color.ToolWindow.Border">#FF1E1E1E</Color>
<!-- Editor Colors -->
<Color x:Key="VS2026.Color.Editor.Background">#FF1E1E1E</Color>
<Color x:Key="VS2026.Color.Editor.LineNumber">#FF2B91AF</Color>
<Color x:Key="VS2026.Color.Editor.Selection">#FF264F78</Color>
</ResourceDictionary>

View File

@@ -0,0 +1,50 @@
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!-- Visual Studio 2026 Inspired Colors (Light Theme) -->
<Color x:Key="VS2026.Color.Background.Default">#FFFFFFFF</Color>
<Color x:Key="VS2026.Color.Background.Secondary">#FFF5F5F5</Color>
<Color x:Key="VS2026.Color.Background.Tertiary">#FFEEEEEE</Color>
<Color x:Key="VS2026.Color.Background.Quaternary">#FFE0E0E0</Color>
<Color x:Key="VS2026.Color.Background.CommandBar">#FFF0F0F0</Color>
<!-- Text Colors -->
<Color x:Key="VS2026.Color.Text.Primary">#FF1E1E1E</Color>
<Color x:Key="VS2026.Color.Text.Secondary">#FF656565</Color>
<Color x:Key="VS2026.Color.Text.Disabled">#FFA0A0A0</Color>
<Color x:Key="VS2026.Color.Text.OnAccent">#FFFFFFFF</Color>
<Color x:Key="VS2026.Color.Text.Link">#FF007ACC</Color>
<!-- VS2026 Accent Colors (Purple/Blue inspired) -->
<Color x:Key="VS2026.Color.Accent.Default">#FF68217A</Color>
<!-- VS Purple -->
<Color x:Key="VS2026.Color.Accent.Secondary">#FF512D6D</Color>
<Color x:Key="VS2026.Color.Accent.Tertiary">#FF3C2D5F</Color>
<Color x:Key="VS2026.Color.Accent.Action">#FF007ACC</Color>
<!-- VS Blue -->
<!-- Border Colors -->
<Color x:Key="VS2026.Color.Border.Default">#FFD0D0D0</Color>
<Color x:Key="VS2026.Color.Border.Secondary">#FFE5E5E5</Color>
<Color x:Key="VS2026.Color.Border.Accent">#FF68217A</Color>
<Color x:Key="VS2026.Color.Border.Tab.Active">#FF007ACC</Color>
<Color x:Key="VS2026.Color.Border.Tab.Inactive">#FFD0D0D0</Color>
<!-- System Colors -->
<Color x:Key="VS2026.Color.System.Success">#FF107C10</Color>
<Color x:Key="VS2026.Color.System.Warning">#FFF7630C</Color>
<Color x:Key="VS2026.Color.System.Error">#FFD13438</Color>
<Color x:Key="VS2026.Color.System.Info">#FF007ACC</Color>
<!-- Panel & Tool Window Colors -->
<Color x:Key="VS2026.Color.Panel.Background">#FFFFFFFF</Color>
<Color x:Key="VS2026.Color.Panel.Border">#FFD0D0D0</Color>
<Color x:Key="VS2026.Color.ToolWindow.Background">#FFF5F5F5</Color>
<Color x:Key="VS2026.Color.ToolWindow.Border">#FFC8C8C8</Color>
<!-- Editor Colors -->
<Color x:Key="VS2026.Color.Editor.Background">#FFFFFFFF</Color>
<Color x:Key="VS2026.Color.Editor.LineNumber">#FF2B91AF</Color>
<Color x:Key="VS2026.Color.Editor.Selection">#FF3399FF</Color>
</ResourceDictionary>

View File

@@ -0,0 +1,40 @@
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!-- VS2026 Geometry (more square, professional look) -->
<CornerRadius x:Key="VS2026.CornerRadius.None">0</CornerRadius>
<CornerRadius x:Key="VS2026.CornerRadius.Small">1</CornerRadius>
<CornerRadius x:Key="VS2026.CornerRadius.Medium">2</CornerRadius>
<CornerRadius x:Key="VS2026.CornerRadius.Large">3</CornerRadius>
<CornerRadius x:Key="VS2026.CornerRadius.ExtraLarge">4</CornerRadius>
<CornerRadius x:Key="VS2026.CornerRadius.Circle">1000</CornerRadius>
<CornerRadius x:Key="VS2026.CornerRadius.Panel">2</CornerRadius>
<!-- Border Thickness -->
<Thickness x:Key="VS2026.BorderThickness.None">0</Thickness>
<Thickness x:Key="VS2026.BorderThickness.Thin">1</Thickness>
<Thickness x:Key="VS2026.BorderThickness.Medium">1</Thickness>
<Thickness x:Key="VS2026.BorderThickness.Thick">2</Thickness>
<Thickness x:Key="VS2026.BorderThickness.Panel">1</Thickness>
<!-- Spacing -->
<x:Double x:Key="VS2026.Spacing.None">0</x:Double>
<x:Double x:Key="VS2026.Spacing.ExtraSmall">1</x:Double>
<x:Double x:Key="VS2026.Spacing.Small">2</x:Double>
<x:Double x:Key="VS2026.Spacing.Medium">4</x:Double>
<x:Double x:Key="VS2026.Spacing.Large">6</x:Double>
<x:Double x:Key="VS2026.Spacing.ExtraLarge">8</x:Double>
<x:Double x:Key="VS2026.Spacing.ExtraExtraLarge">12</x:Double>
<x:Double x:Key="VS2026.Spacing.Panel">3</x:Double>
<!-- Control Sizes -->
<x:Double x:Key="VS2026.Size.Splitter.Width">3</x:Double>
<x:Double x:Key="VS2026.Size.Control.Height">28</x:Double>
<x:Double x:Key="VS2026.Size.Control.CornerRadius">2</x:Double>
<!-- Icon Sizes -->
<x:Double x:Key="VS2026.Size.Icon.Small">14</x:Double>
<x:Double x:Key="VS2026.Size.Icon.Medium">18</x:Double>
<x:Double x:Key="VS2026.Size.Icon.Large">22</x:Double>
</ResourceDictionary>

View File

@@ -0,0 +1,55 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net8.0-windows10.0.19041.0;net9.0-windows10.0.19041.0;net10.0-windows10.0.19041.0</TargetFrameworks>
<TargetPlatformMinVersion>10.0.17763.0</TargetPlatformMinVersion>
<RootNamespace>Lattice.Themes.VS2026</RootNamespace>
<RuntimeIdentifiers>win-x86;win-x64;win-arm64</RuntimeIdentifiers>
<UseWinUI>true</UseWinUI>
<WinUISDKReferences>false</WinUISDKReferences>
</PropertyGroup>
<ItemGroup>
<None Remove="Colors\Dark.xaml" />
<None Remove="Colors\Light.xaml" />
<None Remove="Tokens.xaml" />
<None Remove="Typography.xaml" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Windows.SDK.BuildTools" Version="10.0.26100.7463" />
<PackageReference Include="Microsoft.WindowsAppSDK" Version="1.8.251106002" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Lattice.Themes.Core\Lattice.Themes.Core.csproj" />
</ItemGroup>
<ItemGroup>
<Page Update="Tokens.xaml">
<Generator>MSBuild:Compile</Generator>
</Page>
</ItemGroup>
<ItemGroup>
<Page Update="Typography.xaml">
<Generator>MSBuild:Compile</Generator>
</Page>
</ItemGroup>
<ItemGroup>
<Page Update="Colors\Dark.xaml">
<Generator>MSBuild:Compile</Generator>
</Page>
</ItemGroup>
<ItemGroup>
<Page Update="Brushes.xaml">
<SubType>Designer</SubType>
</Page>
<Page Update="Geometry.xaml">
<SubType>Designer</SubType>
</Page>
<Page Update="Main.xaml">
<SubType>Designer</SubType>
</Page>
</ItemGroup>
<ItemGroup>
<Page Update="Colors\Light.xaml">
<Generator>MSBuild:Compile</Generator>
</Page>
</ItemGroup>
</Project>

View File

@@ -0,0 +1,49 @@
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:muxc="using:Microsoft.UI.Xaml.Controls">
<ResourceDictionary.MergedDictionaries>
<!-- Порядок важен! -->
<ResourceDictionary Source="ms-appx:///Lattice.Themes.VS2026/Brushes.xaml" />
<ResourceDictionary Source="ms-appx:///Lattice.Themes.VS2026/Geometry.xaml" />
<ResourceDictionary Source="ms-appx:///Lattice.Themes.VS2026/Typography.xaml" />
<ResourceDictionary Source="ms-appx:///Lattice.Themes.VS2026/Tokens.xaml" />
</ResourceDictionary.MergedDictionaries>
<!-- VS2026-специфичные стили -->
<Style x:Key="LatticeTabViewStyle" TargetType="muxc:TabView">
<Setter Property="Background" Value="{StaticResource Lattice.Brush.Background.Primary}" />
<Setter Property="BorderBrush" Value="{StaticResource Lattice.Brush.Border.Primary}" />
<Setter Property="BorderThickness" Value="{StaticResource Lattice.BorderThickness.Thin}" />
<Setter Property="CornerRadius" Value="{StaticResource Lattice.CornerRadius.Small}" />
</Style>
<!-- Стиль для TabViewItem в стиле VS -->
<Style x:Key="LatticeTabViewItemStyleVS" TargetType="muxc:TabViewItem">
<Setter Property="Background" Value="Transparent" />
<Setter Property="BorderBrush" Value="{StaticResource Lattice.Color.VS.Border.Tab.Inactive}" />
<Setter Property="BorderThickness" Value="0,0,0,2" />
<Setter Property="CornerRadius" Value="0" />
<Setter Property="Margin" Value="4,0,0,0" />
<Setter Property="Padding" Value="12,8" />
</Style>
<Style x:Key="LatticePanelStyleVS" TargetType="Border">
<Setter Property="Background" Value="{StaticResource Lattice.Brush.Background.Secondary}" />
<Setter Property="BorderBrush" Value="{StaticResource Lattice.Brush.Panel.Border}" />
<Setter Property="BorderThickness" Value="{StaticResource Lattice.BorderThickness.Panel}" />
<Setter Property="CornerRadius" Value="{StaticResource Lattice.CornerRadius.Panel}" />
<Setter Property="Padding" Value="{StaticResource Lattice.Spacing.Panel}" />
<Setter Property="Margin" Value="0" />
</Style>
<!-- Стиль для Splitter в стиле VS (тонкая линия) -->
<Style x:Key="LatticeSplitterStyleVS" TargetType="Rectangle">
<Setter Property="Fill" Value="{StaticResource Lattice.Brush.Splitter.Normal}" />
<Setter Property="Width" Value="{StaticResource Lattice.Size.Splitter.Width}" />
<Setter Property="Height" Value="Auto" />
<Setter Property="VerticalAlignment" Value="Stretch" />
<Setter Property="HorizontalAlignment" Value="Center" />
</Style>
</ResourceDictionary>

View File

@@ -0,0 +1,190 @@
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!-- ============ Colors ============ -->
<!-- Основные цвета -->
<StaticResource x:Key="Lattice.Color.Primary" ResourceKey="VS2026.Color.Accent.Default" />
<StaticResource x:Key="Lattice.Color.Secondary" ResourceKey="VS2026.Color.Accent.Secondary" />
<StaticResource x:Key="Lattice.Color.Tertiary" ResourceKey="VS2026.Color.Accent.Tertiary" />
<!-- Акцентные цвета -->
<StaticResource x:Key="Lattice.Color.Accent" ResourceKey="VS2026.Color.Accent.Default" />
<StaticResource x:Key="Lattice.Color.Accent.Light" ResourceKey="VS2026.Color.Accent.Secondary" />
<StaticResource x:Key="Lattice.Color.Accent.Dark" ResourceKey="VS2026.Color.Accent.Tertiary" />
<StaticResource x:Key="Lattice.Color.Accent.Action" ResourceKey="VS2026.Color.Accent.Action" />
<!-- Фоновые цвета -->
<StaticResource x:Key="Lattice.Color.Background.Primary" ResourceKey="VS2026.Color.Background.Default" />
<StaticResource x:Key="Lattice.Color.Background.Secondary" ResourceKey="VS2026.Color.Background.Secondary" />
<StaticResource x:Key="Lattice.Color.Background.Tertiary" ResourceKey="VS2026.Color.Background.Tertiary" />
<StaticResource x:Key="Lattice.Color.Background.Quaternary" ResourceKey="VS2026.Color.Background.Quaternary" />
<StaticResource x:Key="Lattice.Color.VS.Background.CommandBar" ResourceKey="VS2026.Color.Background.CommandBar" />
<!-- Текстовые цвета -->
<StaticResource x:Key="Lattice.Color.Text.Primary" ResourceKey="VS2026.Color.Text.Primary" />
<StaticResource x:Key="Lattice.Color.Text.Secondary" ResourceKey="VS2026.Color.Text.Secondary" />
<StaticResource x:Key="Lattice.Color.Text.Disabled" ResourceKey="VS2026.Color.Text.Disabled" />
<StaticResource x:Key="Lattice.Color.Text.OnAccent" ResourceKey="VS2026.Color.Text.OnAccent" />
<!-- Граничные цвета -->
<StaticResource x:Key="Lattice.Color.Border.Primary" ResourceKey="VS2026.Color.Border.Default" />
<StaticResource x:Key="Lattice.Color.Border.Secondary" ResourceKey="VS2026.Color.Border.Secondary" />
<StaticResource x:Key="Lattice.Color.Border.Accent" ResourceKey="VS2026.Color.Border.Accent" />
<StaticResource x:Key="Lattice.Color.VS.Border.Tab.Active" ResourceKey="VS2026.Color.Border.Tab.Active" />
<StaticResource x:Key="Lattice.Color.VS.Border.Tab.Inactive" ResourceKey="VS2026.Color.Border.Tab.Inactive" />
<!-- Цвета состояний -->
<StaticResource x:Key="Lattice.Color.Success" ResourceKey="VS2026.Color.System.Success" />
<StaticResource x:Key="Lattice.Color.Warning" ResourceKey="VS2026.Color.System.Warning" />
<StaticResource x:Key="Lattice.Color.Error" ResourceKey="VS2026.Color.System.Error" />
<StaticResource x:Key="Lattice.Color.Info" ResourceKey="VS2026.Color.System.Info" />
<!-- ============ Кисти ============ -->
<!-- Основные кисти -->
<StaticResource x:Key="Lattice.Brush.Primary" ResourceKey="VS2026.Brush.Accent.Default" />
<StaticResource x:Key="Lattice.Brush.Secondary" ResourceKey="VS2026.Brush.Accent.Secondary" />
<StaticResource x:Key="Lattice.Brush.Tertiary" ResourceKey="VS2026.Brush.Accent.Tertiary" />
<!-- Акцентные кисти -->
<StaticResource x:Key="Lattice.Brush.Accent" ResourceKey="VS2026.Brush.Accent.Default" />
<StaticResource x:Key="Lattice.Brush.Accent.Light" ResourceKey="VS2026.Brush.Accent.Secondary" />
<StaticResource x:Key="Lattice.Brush.Accent.Dark" ResourceKey="VS2026.Brush.Accent.Tertiary" />
<StaticResource x:Key="Lattice.Brush.Accent.Action" ResourceKey="VS2026.Brush.Accent.Action" />
<!-- Фоновые кисти -->
<StaticResource x:Key="Lattice.Brush.Background.Primary" ResourceKey="VS2026.Brush.Background.Default" />
<StaticResource x:Key="Lattice.Brush.Background.Secondary" ResourceKey="VS2026.Brush.Background.Secondary" />
<StaticResource x:Key="Lattice.Brush.Background.Tertiary" ResourceKey="VS2026.Brush.Background.Tertiary" />
<StaticResource x:Key="Lattice.Brush.Background.Quaternary" ResourceKey="VS2026.Brush.Background.Quaternary" />
<!-- Текстовые кисти -->
<StaticResource x:Key="Lattice.Brush.Text.Primary" ResourceKey="VS2026.Brush.Text.Primary" />
<StaticResource x:Key="Lattice.Brush.Text.Secondary" ResourceKey="VS2026.Brush.Text.Secondary" />
<StaticResource x:Key="Lattice.Brush.Text.Disabled" ResourceKey="VS2026.Brush.Text.Disabled" />
<StaticResource x:Key="Lattice.Brush.Text.OnAccent" ResourceKey="VS2026.Brush.Text.OnAccent" />
<!-- Граничные кисти -->
<StaticResource x:Key="Lattice.Brush.Border.Primary" ResourceKey="VS2026.Brush.Border.Default" />
<StaticResource x:Key="Lattice.Brush.Border.Secondary" ResourceKey="VS2026.Brush.Border.Secondary" />
<StaticResource x:Key="Lattice.Brush.Border.Accent" ResourceKey="VS2026.Brush.Border.Accent" />
<StaticResource x:Key="Lattice.Brush.Panel.Border" ResourceKey="VS2026.Brush.Panel.Border" />
<!-- Кисти разделителей -->
<SolidColorBrush x:Key="Lattice.Brush.Splitter.Normal"
Color="{StaticResource VS2026.Color.Border.Default}" />
<SolidColorBrush x:Key="Lattice.Brush.Splitter.Hover"
Color="{StaticResource VS2026.Color.Accent.Action}" />
<!-- Кисти состояний -->
<StaticResource x:Key="Lattice.Brush.Success" ResourceKey="VS2026.Brush.System.Success" />
<StaticResource x:Key="Lattice.Brush.Warning" ResourceKey="VS2026.Brush.System.Warning" />
<StaticResource x:Key="Lattice.Brush.Error" ResourceKey="VS2026.Brush.System.Error" />
<StaticResource x:Key="Lattice.Brush.Info" ResourceKey="VS2026.Brush.System.Info" />
<!-- Кисти для перетаскивания -->
<SolidColorBrush x:Key="Lattice.Brush.Drag.Overlay"
Color="{StaticResource Lattice.Color.Accent}" Opacity="0.3" />
<SolidColorBrush x:Key="Lattice.Brush.Drop.Preview"
Color="{StaticResource Lattice.Color.Accent}" Opacity="0.2" />
<SolidColorBrush x:Key="Lattice.Brush.Drop.Valid"
Color="{StaticResource Lattice.Color.Success}" Opacity="0.3" />
<SolidColorBrush x:Key="Lattice.Brush.Drop.Invalid"
Color="{StaticResource Lattice.Color.Error}" Opacity="0.3" />
<!-- ============ Geometry ============ -->
<!-- Радиусы скругления -->
<StaticResource x:Key="Lattice.CornerRadius.None" ResourceKey="VS2026.CornerRadius.None" />
<StaticResource x:Key="Lattice.CornerRadius.Small" ResourceKey="VS2026.CornerRadius.Small" />
<StaticResource x:Key="Lattice.CornerRadius.Medium" ResourceKey="VS2026.CornerRadius.Medium" />
<StaticResource x:Key="Lattice.CornerRadius.Large" ResourceKey="VS2026.CornerRadius.Large" />
<StaticResource x:Key="Lattice.CornerRadius.XLarge" ResourceKey="VS2026.CornerRadius.ExtraLarge" />
<StaticResource x:Key="Lattice.CornerRadius.Circle" ResourceKey="VS2026.CornerRadius.Circle" />
<StaticResource x:Key="Lattice.CornerRadius.Panel" ResourceKey="VS2026.CornerRadius.Panel" />
<!-- Отступы -->
<StaticResource x:Key="Lattice.Spacing.None" ResourceKey="VS2026.Spacing.None" />
<StaticResource x:Key="Lattice.Spacing.XSmall" ResourceKey="VS2026.Spacing.ExtraSmall" />
<StaticResource x:Key="Lattice.Spacing.Small" ResourceKey="VS2026.Spacing.Small" />
<StaticResource x:Key="Lattice.Spacing.Medium" ResourceKey="VS2026.Spacing.Medium" />
<StaticResource x:Key="Lattice.Spacing.Large" ResourceKey="VS2026.Spacing.Large" />
<StaticResource x:Key="Lattice.Spacing.XLarge" ResourceKey="VS2026.Spacing.ExtraLarge" />
<StaticResource x:Key="Lattice.Spacing.XXLarge" ResourceKey="VS2026.Spacing.ExtraExtraLarge" />
<StaticResource x:Key="Lattice.Spacing.Panel" ResourceKey="VS2026.Spacing.Panel" />
<!-- Толщины границ -->
<StaticResource x:Key="Lattice.BorderThickness.None" ResourceKey="VS2026.BorderThickness.None" />
<StaticResource x:Key="Lattice.BorderThickness.Thin" ResourceKey="VS2026.BorderThickness.Thin" />
<StaticResource x:Key="Lattice.BorderThickness.Medium" ResourceKey="VS2026.BorderThickness.Medium" />
<StaticResource x:Key="Lattice.BorderThickness.Thick" ResourceKey="VS2026.BorderThickness.Thick" />
<StaticResource x:Key="Lattice.BorderThickness.Panel" ResourceKey="VS2026.BorderThickness.Panel" />
<!-- Размеры -->
<StaticResource x:Key="Lattice.Size.Splitter.Width" ResourceKey="VS2026.Size.Splitter.Width" />
<StaticResource x:Key="Lattice.IconSize.Small" ResourceKey="VS2026.Size.Icon.Small" />
<StaticResource x:Key="Lattice.IconSize.Medium" ResourceKey="VS2026.Size.Icon.Medium" />
<StaticResource x:Key="Lattice.IconSize.Large" ResourceKey="VS2026.Size.Icon.Large" />
<!-- ============ Typography ============ -->
<!-- Размеры шрифтов -->
<StaticResource x:Key="Lattice.FontSize.Caption" ResourceKey="VS2026.FontSize.Caption" />
<StaticResource x:Key="Lattice.FontSize.Body" ResourceKey="VS2026.FontSize.Body" />
<StaticResource x:Key="Lattice.FontSize.BodyStrong" ResourceKey="VS2026.FontSize.BodyStrong" />
<StaticResource x:Key="Lattice.FontSize.Subtitle" ResourceKey="VS2026.FontSize.Subtitle" />
<StaticResource x:Key="Lattice.FontSize.Title" ResourceKey="VS2026.FontSize.Title" />
<StaticResource x:Key="Lattice.FontSize.TitleLarge" ResourceKey="VS2026.FontSize.TitleLarge" />
<StaticResource x:Key="Lattice.FontSize.Display" ResourceKey="VS2026.FontSize.Display" />
<!-- Высота строк -->
<StaticResource x:Key="Lattice.LineHeight.Tight" ResourceKey="VS2026.LineHeight.Tight" />
<StaticResource x:Key="Lattice.LineHeight.Normal" ResourceKey="VS2026.LineHeight.Normal" />
<StaticResource x:Key="Lattice.LineHeight.Relaxed" ResourceKey="VS2026.LineHeight.Relaxed" />
<!-- Веса шрифтов -->
<StaticResource x:Key="Lattice.FontWeight.Light" ResourceKey="VS2026.FontWeight.Regular" />
<StaticResource x:Key="Lattice.FontWeight.Normal" ResourceKey="VS2026.FontWeight.Regular" />
<StaticResource x:Key="Lattice.FontWeight.Medium" ResourceKey="VS2026.FontWeight.Medium" />
<StaticResource x:Key="Lattice.FontWeight.Semibold" ResourceKey="VS2026.FontWeight.SemiBold" />
<StaticResource x:Key="Lattice.FontWeight.Bold" ResourceKey="VS2026.FontWeight.Bold" />
<!-- ============ Анимации ============ -->
<!-- Длительности (быстрее, чем Fluent) -->
<Duration x:Key="Lattice.Duration.Instant">0:0:0</Duration>
<Duration x:Key="Lattice.Duration.Fast">0:0:0.08</Duration>
<Duration x:Key="Lattice.Duration.Normal">0:0:0.15</Duration>
<Duration x:Key="Lattice.Duration.Slow">0:0:0.25</Duration>
<!-- Easing Functions (более резкие, как в VS) -->
<CubicEase x:Key="Lattice.Easing.Linear" EasingMode="EaseInOut" />
<CubicEase x:Key="Lattice.Easing.Standard" EasingMode="EaseInOut" />
<CubicEase x:Key="Lattice.Easing.Standard.Accelerate" EasingMode="EaseIn" />
<CubicEase x:Key="Lattice.Easing.Standard.Decelerate" EasingMode="EaseOut" />
<CubicEase x:Key="Lattice.Easing.Emphasized" EasingMode="EaseInOut" />
<!-- ============ Miscellaneous ============ -->
<!-- Прозрачности -->
<x:Double x:Key="Lattice.Opacity.Disabled">0.4</x:Double>
<x:Double x:Key="Lattice.Opacity.Overlay">0.5</x:Double>
<x:Double x:Key="Lattice.Opacity.Drag">0.8</x:Double>
<x:Double x:Key="Lattice.Opacity.DropPreview">0.7</x:Double>
<!-- Z-индексы -->
<x:Int32 x:Key="Lattice.ZIndex.Default">0</x:Int32>
<x:Int32 x:Key="Lattice.ZIndex.Overlay">1000</x:Int32>
<x:Int32 x:Key="Lattice.ZIndex.Dialog">2000</x:Int32>
<x:Int32 x:Key="Lattice.ZIndex.Tooltip">3000</x:Int32>
<x:Int32 x:Key="Lattice.ZIndex.Drag">4000</x:Int32>
<x:Int32 x:Key="Lattice.ZIndex.DropPreview">5000</x:Int32>
<!-- Размеры теней (минимальные тени, как в VS) -->
<x:Double x:Key="Lattice.Shadow.Depth.None">0</x:Double>
<x:Double x:Key="Lattice.Shadow.Depth.Small">1</x:Double>
<x:Double x:Key="Lattice.Shadow.Depth.Medium">4</x:Double>
<x:Double x:Key="Lattice.Shadow.Depth.Large">8</x:Double>
</ResourceDictionary>

View File

@@ -0,0 +1,43 @@
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!-- VS2026 Typography (optimized for code editors) -->
<x:Double x:Key="VS2026.FontSize.Caption">11</x:Double>
<x:Double x:Key="VS2026.FontSize.Body">12</x:Double>
<x:Double x:Key="VS2026.FontSize.BodyStrong">12</x:Double>
<x:Double x:Key="VS2026.FontSize.Subtitle">13</x:Double>
<x:Double x:Key="VS2026.FontSize.Title">15</x:Double>
<x:Double x:Key="VS2026.FontSize.TitleLarge">18</x:Double>
<x:Double x:Key="VS2026.FontSize.Display">22</x:Double>
<!-- Font Weights -->
<FontWeight x:Key="VS2026.FontWeight.Regular">Normal</FontWeight>
<FontWeight x:Key="VS2026.FontWeight.Medium">Medium</FontWeight>
<FontWeight x:Key="VS2026.FontWeight.SemiBold">SemiBold</FontWeight>
<FontWeight x:Key="VS2026.FontWeight.Bold">Bold</FontWeight>
<!-- Line Heights -->
<x:Double x:Key="VS2026.LineHeight.None">1</x:Double>
<x:Double x:Key="VS2026.LineHeight.Tight">1.1</x:Double>
<x:Double x:Key="VS2026.LineHeight.Normal">1.3</x:Double>
<x:Double x:Key="VS2026.LineHeight.Relaxed">1.5</x:Double>
<!-- Font Families (VS-style) -->
<FontFamily x:Key="VS2026.FontFamily.Base">Segoe UI</FontFamily>
<FontFamily x:Key="VS2026.FontFamily.Monospace">Cascadia Mono, Consolas, Courier New</FontFamily>
<FontFamily x:Key="VS2026.FontFamily.Code">Cascadia Code, Consolas</FontFamily>
<!-- Text Styles -->
<Style x:Key="VS2026.TextStyle.Code" TargetType="TextBlock">
<Setter Property="FontFamily" Value="{StaticResource VS2026.FontFamily.Code}" />
<Setter Property="FontSize" Value="{StaticResource VS2026.FontSize.Body}" />
<Setter Property="Foreground" Value="{StaticResource VS2026.Brush.Text.Primary}" />
</Style>
<Style x:Key="VS2026.TextStyle.StatusBar" TargetType="TextBlock">
<Setter Property="FontSize" Value="{StaticResource VS2026.FontSize.Caption}" />
<Setter Property="FontWeight" Value="{StaticResource VS2026.FontWeight.Regular}" />
<Setter Property="Foreground" Value="{StaticResource VS2026.Brush.Text.Secondary}" />
</Style>
</ResourceDictionary>

View File

@@ -0,0 +1,41 @@
using System;
using System.Collections.Generic;
namespace Lattice.Themes.VS2026;
public class VS2026ThemePack : ThemePack
{
private static readonly Uri[] _lightResourceUris = new[]
{
new Uri("ms-appx:///Lattice.Themes.VS2026/Colors/Light.xaml"),
new Uri("ms-appx:///Lattice.Themes.VS2026/Main.xaml")
};
private static readonly Uri[] _darkResourceUris = new[]
{
new Uri("ms-appx:///Lattice.Themes.VS2026/Colors/Dark.xaml"),
new Uri("ms-appx:///Lattice.Themes.VS2026/Main.xaml")
};
public VS2026ThemePack(bool isDark = false) : base(isDark ? "Visual Studio 2026 Dark" : "Visual Studio 2026 Light")
{
Description = isDark ?
"Visual Studio 2026 inspired dark theme for developers" :
"Visual Studio 2026 inspired light theme for developers";
Version = "2026.1.0";
IsDark = isDark;
}
public override IReadOnlyList<Uri> GetResourceUris()
{
return IsDark ? _darkResourceUris : _lightResourceUris;
}
public override void OnApply()
{
base.OnApply();
System.Diagnostics.Debug.WriteLine($"Applying VS2026 Theme: {Name}");
// Можно добавить VS-специфичные настройки
}
}