Files
Lattice/Lattice.UI.DragDrop.WinUI/Themes/DragDropStyles.xaml

158 lines
9.4 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!--
DragDropStyles.xaml - Базовые стили для элементов с поддержкой перетаскивания.
Содержит стили для источников перетаскивания и целей сброса с различными
визуальными состояниями (Normal, Dragging, DragOver и т.д.).
-->
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!-- Стиль для элементов с поддержкой перетаскивания -->
<Style x:Key="Lattice.DragDrop.DragSourceStyle" TargetType="Control">
<Setter Property="Background" Value="{ThemeResource Lattice.Brush.Background.Secondary}" />
<Setter Property="BorderBrush" Value="{ThemeResource Lattice.Brush.Border.Primary}" />
<Setter Property="BorderThickness" Value="{ThemeResource Lattice.BorderThickness.Thin}" />
<Setter Property="Padding" Value="{ThemeResource Lattice.Spacing.Medium}" />
<Setter Property="CornerRadius" Value="{ThemeResource Lattice.CornerRadius.Small}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Control">
<Border
x:Name="RootBorder"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="{TemplateBinding CornerRadius}"
Padding="{TemplateBinding Padding}">
<ContentPresenter x:Name="ContentPresenter" />
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="DragDropStates">
<VisualState x:Name="Normal" />
<VisualState x:Name="Dragging">
<VisualState.Setters>
<Setter Target="RootBorder.Opacity" Value="{ThemeResource Lattice.Opacity.Drag}" />
<Setter Target="RootBorder.RenderTransform">
<Setter.Value>
<ScaleTransform ScaleX="0.95" ScaleY="0.95" />
</Setter.Value>
</Setter>
<Setter Target="RootBorder.Background">
<Setter.Value>
<SolidColorBrush Color="{ThemeResource Lattice.Color.Accent}" Opacity="0.1" />
</Setter.Value>
</Setter>
</VisualState.Setters>
</VisualState>
<VisualState x:Name="DragOver">
<VisualState.Setters>
<Setter Target="RootBorder.Background">
<Setter.Value>
<SolidColorBrush Color="{ThemeResource Lattice.Color.Accent}" Opacity="0.2" />
</Setter.Value>
</Setter>
<Setter Target="RootBorder.BorderBrush">
<Setter.Value>
<SolidColorBrush Color="{ThemeResource Lattice.Color.Accent}" />
</Setter.Value>
</Setter>
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!-- Стиль для целей сброса -->
<Style x:Key="Lattice.DragDrop.DropTargetStyle" TargetType="Control">
<Setter Property="Background" Value="{ThemeResource Lattice.Brush.Background.Tertiary}" />
<Setter Property="BorderBrush" Value="{ThemeResource Lattice.Brush.Border.Secondary}" />
<Setter Property="BorderThickness" Value="{ThemeResource Lattice.BorderThickness.Medium}" />
<Setter Property="Padding" Value="{ThemeResource Lattice.Spacing.Large}" />
<Setter Property="CornerRadius" Value="{ThemeResource Lattice.CornerRadius.Medium}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Control">
<Border
x:Name="RootBorder"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="{TemplateBinding CornerRadius}"
Padding="{TemplateBinding Padding}">
<ContentPresenter x:Name="ContentPresenter" />
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="DropTargetStates">
<VisualState x:Name="Normal" />
<VisualState x:Name="DragOver">
<VisualState.Setters>
<Setter Target="RootBorder.Background">
<Setter.Value>
<SolidColorBrush Color="{ThemeResource Lattice.Color.Accent}" Opacity="0.1" />
</Setter.Value>
</Setter>
<Setter Target="RootBorder.BorderBrush">
<Setter.Value>
<SolidColorBrush Color="{ThemeResource Lattice.Color.Accent}" />
</Setter.Value>
</Setter>
<Setter Target="RootBorder.BorderThickness" Value="3" />
</VisualState.Setters>
</VisualState>
<VisualState x:Name="DropValid">
<VisualState.Setters>
<Setter Target="RootBorder.Background">
<Setter.Value>
<SolidColorBrush Color="{ThemeResource Lattice.Color.Success}" Opacity="0.1" />
</Setter.Value>
</Setter>
<Setter Target="RootBorder.BorderBrush">
<Setter.Value>
<SolidColorBrush Color="{ThemeResource Lattice.Color.Success}" />
</Setter.Value>
</Setter>
</VisualState.Setters>
</VisualState>
<VisualState x:Name="DropInvalid">
<VisualState.Setters>
<Setter Target="RootBorder.Background">
<Setter.Value>
<SolidColorBrush Color="{ThemeResource Lattice.Color.Error}" Opacity="0.1" />
</Setter.Value>
</Setter>
<Setter Target="RootBorder.BorderBrush">
<Setter.Value>
<SolidColorBrush Color="{ThemeResource Lattice.Color.Error}" />
</Setter.Value>
</Setter>
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!-- Бруши для визуальной обратной связи -->
<SolidColorBrush x:Key="Lattice.DragDrop.DragOverBackgroundBrush"
Color="{ThemeResource Lattice.Color.Accent}"
Opacity="0.3" />
<SolidColorBrush x:Key="Lattice.DragDrop.DragOverBorderBrush"
Color="{ThemeResource Lattice.Color.Accent}" />
<SolidColorBrush x:Key="Lattice.DragDrop.DropValidBrush"
Color="{ThemeResource Lattice.Color.Success}"
Opacity="0.5" />
<SolidColorBrush x:Key="Lattice.DragDrop.DropInvalidBrush"
Color="{ThemeResource Lattice.Color.Error}"
Opacity="0.5" />
</ResourceDictionary>