153 lines
9.1 KiB
XML
153 lines
9.1 KiB
XML
<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> |