1
0

add styling

This commit is contained in:
2026-02-26 00:25:23 +03:00
parent 54deede773
commit 43216a2ef7

View File

@@ -5,145 +5,406 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:Main"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800" Loaded="Window_Loaded">
<Grid>
Title="Lab7Meow" Height="450" Width="800" Loaded="Window_Loaded">
<Window.Resources>
<SolidColorBrush x:Key="C_Rosewater" Color="#F5E0DC"/>
<SolidColorBrush x:Key="C_Flamingo" Color="#F2CDCD"/>
<SolidColorBrush x:Key="C_Pink" Color="#F5C2E7"/>
<SolidColorBrush x:Key="C_Mauve" Color="#CBA6F7"/>
<SolidColorBrush x:Key="C_Red" Color="#F38BA8"/>
<SolidColorBrush x:Key="C_Maroon" Color="#EBA0AC"/>
<SolidColorBrush x:Key="C_Peach" Color="#FAB387"/>
<SolidColorBrush x:Key="C_Yellow" Color="#F9E2AF"/>
<SolidColorBrush x:Key="C_Green" Color="#A6E3A1"/>
<SolidColorBrush x:Key="C_Teal" Color="#94E2D5"/>
<SolidColorBrush x:Key="C_Sky" Color="#89DCEB"/>
<SolidColorBrush x:Key="C_Sapphire" Color="#74C7EC"/>
<SolidColorBrush x:Key="C_Blue" Color="#89B4FA"/>
<SolidColorBrush x:Key="C_Lavender" Color="#B4BEFE"/>
<SolidColorBrush x:Key="C_Text" Color="#CDD6F4"/>
<SolidColorBrush x:Key="C_Subtext1" Color="#BAC2DE"/>
<SolidColorBrush x:Key="C_Subtext0" Color="#A6ADC8"/>
<SolidColorBrush x:Key="C_Overlay2" Color="#9399B2"/>
<SolidColorBrush x:Key="C_Overlay1" Color="#7F849C"/>
<SolidColorBrush x:Key="C_Overlay0" Color="#6C7086"/>
<SolidColorBrush x:Key="C_Surface2" Color="#585B70"/>
<SolidColorBrush x:Key="C_Surface1" Color="#45475A"/>
<SolidColorBrush x:Key="C_Surface0" Color="#313244"/>
<SolidColorBrush x:Key="C_Base" Color="#1E1E2E"/>
<SolidColorBrush x:Key="C_Mantle" Color="#181825"/>
<SolidColorBrush x:Key="C_Crust" Color="#11111B"/>
<SolidColorBrush x:Key="BgBrush" Color="#1E1E2E"/>
<SolidColorBrush x:Key="CardBrush" Color="#313244"/>
<SolidColorBrush x:Key="CardBrush2" Color="#45475A"/>
<SolidColorBrush x:Key="BorderBrushSoft" Color="#585B70"/>
<SolidColorBrush x:Key="TextBrushMain" Color="#CDD6F4"/>
<SolidColorBrush x:Key="TextBrushHint" Color="#A6ADC8"/>
<SolidColorBrush x:Key="AccentBrush" Color="#B4BEFE"/>
<SolidColorBrush x:Key="DangerBrush" Color="#F38BA8"/>
<Style TargetType="Window">
<Setter Property="Background" Value="{StaticResource BgBrush}"/>
<Setter Property="FontFamily" Value="Segoe UI"/>
<Setter Property="FontSize" Value="13"/>
<Setter Property="Foreground" Value="{StaticResource TextBrushMain}"/>
</Style>
<Style TargetType="{x:Type TabControl}">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="BorderThickness" Value="0"/>
</Style>
<Style TargetType="{x:Type TabItem}">
<Setter Property="Margin" Value="0,0,6,0"/>
<Setter Property="Padding" Value="10,6"/>
<Setter Property="Foreground" Value="{StaticResource TextBrushHint}"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabItem}">
<Border x:Name="Bd"
CornerRadius="10"
Background="{TemplateBinding Background}"
Padding="{TemplateBinding Padding}"
BorderBrush="{StaticResource BorderBrushSoft}"
BorderThickness="1"
Opacity="0.75">
<ContentPresenter ContentSource="Header"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter TargetName="Bd" Property="Background" Value="{StaticResource CardBrush}"/>
<Setter TargetName="Bd" Property="Opacity" Value="1"/>
<Setter Property="Foreground" Value="{StaticResource TextBrushMain}"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="Bd" Property="Opacity" Value="0.95"/>
<Setter Property="Foreground" Value="{StaticResource TextBrushMain}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="Card" TargetType="Border">
<Setter Property="Background" Value="{StaticResource CardBrush}"/>
<Setter Property="BorderBrush" Value="{StaticResource BorderBrushSoft}"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="CornerRadius" Value="14"/>
<Setter Property="Padding" Value="12"/>
<Setter Property="SnapsToDevicePixels" Value="True"/>
<Setter Property="Effect">
<Setter.Value>
<DropShadowEffect BlurRadius="18" ShadowDepth="2" Opacity="0.25" Color="#000000"/>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="TextBlock" x:Key="FieldLabel">
<Setter Property="Foreground" Value="{StaticResource TextBrushHint}"/>
<Setter Property="Margin" Value="0,8,0,4"/>
</Style>
<Style TargetType="TextBox">
<Setter Property="MinHeight" Value="30"/>
<Setter Property="Padding" Value="10,6"/>
<Setter Property="BorderBrush" Value="{StaticResource BorderBrushSoft}"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Background" Value="{StaticResource CardBrush2}"/>
<Setter Property="Foreground" Value="{StaticResource TextBrushMain}"/>
<Setter Property="SelectionBrush" Value="{StaticResource AccentBrush}"/>
<Setter Property="CaretBrush" Value="{StaticResource AccentBrush}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TextBox">
<Border x:Name="Bd"
CornerRadius="10"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
<ScrollViewer Margin="0" x:Name="PART_ContentHost"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsKeyboardFocused" Value="True">
<Setter TargetName="Bd" Property="BorderBrush" Value="{StaticResource AccentBrush}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="ComboBox">
<Setter Property="MinHeight" Value="32"/>
<Setter Property="Padding" Value="10,6"/>
<Setter Property="BorderBrush" Value="{StaticResource BorderBrushSoft}"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Background" Value="{StaticResource CardBrush2}"/>
<Setter Property="Foreground" Value="{StaticResource TextBrushMain}"/>
</Style>
<Style TargetType="Button">
<Setter Property="MinHeight" Value="34"/>
<Setter Property="Padding" Value="12,8"/>
<Setter Property="Background" Value="{StaticResource AccentBrush}"/>
<Setter Property="Foreground" Value="#1E1E2E"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Cursor" Value="Hand"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border x:Name="Bd"
CornerRadius="10"
Background="{TemplateBinding Background}"
BorderBrush="{StaticResource BorderBrushSoft}"
BorderThickness="0">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="Bd" Property="Opacity" Value="0.92"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter TargetName="Bd" Property="Opacity" Value="0.84"/>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter TargetName="Bd" Property="Opacity" Value="0.45"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="DangerButton" TargetType="Button" BasedOn="{StaticResource {x:Type Button}}">
<Setter Property="Background" Value="{StaticResource DangerBrush}"/>
<Setter Property="Foreground" Value="{StaticResource C_Crust}"/>
</Style>
<Style TargetType="Separator">
<Setter Property="Margin" Value="0,12,0,12"/>
<Setter Property="Background" Value="{StaticResource BorderBrushSoft}"/>
</Style>
<Style TargetType="ScrollViewer">
<Setter Property="Background" Value="Transparent"/>
</Style>
<Style TargetType="ScrollBar">
<Setter Property="Width" Value="10"/>
<Setter Property="Background" Value="Transparent"/>
</Style>
<Style TargetType="Thumb">
<Setter Property="Height" Value="40"/>
<Setter Property="MinHeight" Value="30"/>
<Setter Property="Background" Value="{StaticResource C_Surface2}"/>
<Setter Property="Opacity" Value="0.8"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Thumb">
<Border CornerRadius="8" Background="{TemplateBinding Background}"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<Grid Background="{StaticResource BgBrush}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<TabControl Grid.Column="0" Margin="0,0,10,0">
<TabItem Header="Добавление фигур">
<TabControl Margin="8">
<TabItem Header="Прямоугольник">
<StackPanel Margin="10">
<TextBlock Text="Имя" /> <TextBox x:Name="RectName" />
<TextBlock Text="X" /> <TextBox x:Name="RectX" />
<TextBlock Text="Y" /> <TextBox x:Name="RectY" />
<TextBlock Text="W" /> <TextBox x:Name="RectW" />
<TextBlock Text="H" /> <TextBox x:Name="RectH" />
<Button Content="Добавить" Margin="0,10,0,0" Click="ClickAddRectangle" />
</StackPanel>
<Border Grid.Column="0" Style="{StaticResource Card}" Margin="10,10,6,10">
<ScrollViewer VerticalScrollBarVisibility="Auto"
HorizontalScrollBarVisibility="Disabled"
PanningMode="VerticalOnly">
<TabControl Margin="2">
<TabItem Header="Добавление фигур">
<TabControl Margin="8">
<TabItem Header="Прямоугольник">
<StackPanel Margin="10">
<TextBlock Text="Имя" />
<TextBox x:Name="RectName" />
<TextBlock Text="X" />
<TextBox x:Name="RectX" />
<TextBlock Text="Y" />
<TextBox x:Name="RectY" />
<TextBlock Text="W" />
<TextBox x:Name="RectW" />
<TextBlock Text="H" />
<TextBox x:Name="RectH" />
<Button Content="Добавить" Margin="0,10,0,0" Click="ClickAddRectangle" />
</StackPanel>
</TabItem>
<TabItem Header="Квадрат">
<StackPanel Margin="10">
<TextBlock Text="Имя" />
<TextBox x:Name="SquareName" />
<TextBlock Text="X" />
<TextBox x:Name="SquareX" />
<TextBlock Text="Y" />
<TextBox x:Name="SquareY" />
<TextBlock Text="Side" />
<TextBox x:Name="SquareSide" />
<Button Content="Добавить" Margin="0,10,0,0" Click="ClickAddSquare" />
</StackPanel>
</TabItem>
<TabItem Header="Эллипс">
<StackPanel Margin="10">
<TextBlock Text="Имя" />
<TextBox x:Name="EllipseName" />
<TextBlock Text="X" />
<TextBox x:Name="EllipseX" />
<TextBlock Text="Y" />
<TextBox x:Name="EllipseY" />
<TextBlock Text="W" />
<TextBox x:Name="EllipseW" />
<TextBlock Text="H" />
<TextBox x:Name="EllipseH" />
<Button Content="Добавить" Margin="0,10,0,0" Click="ClickAddEllipse" />
</StackPanel>
</TabItem>
<TabItem Header="Окружность">
<StackPanel Margin="10">
<TextBlock Text="Имя" />
<TextBox x:Name="CircleName" />
<TextBlock Text="X" />
<TextBox x:Name="CircleX" />
<TextBlock Text="Y" />
<TextBox x:Name="CircleY" />
<TextBlock Text="Диаметр" />
<TextBox x:Name="CircleD" />
<Button Content="Добавить" Margin="0,10,0,0" Click="ClickAddCircle" />
</StackPanel>
</TabItem>
<TabItem Header="Многоугольник">
<StackPanel Margin="10">
<TextBlock Text="Имя" />
<TextBox x:Name="PolyName" />
<TextBlock Text="Кол-во вершин" />
<TextBox x:Name="PolyCount" />
<Button
x:Name = "PolyStartBtn"
Content = "Начать ввод точек"
Margin = "0,10,0,0"
Click = "ClickPolyStart"
/>
<Separator Margin="0,5,0,5" />
<TextBlock Text="X точки" />
<TextBox x:Name="PolyX" IsEnabled="False" />
<TextBlock Text="Y точки" />
<TextBox x:Name="PolyY" IsEnabled="False" />
<Button
x:Name = "PolyAddPointBtn"
Content = "Добавить точку"
Margin = "0,10,0,0"
IsEnabled = "False"
Click = "ClickPolyAddPoint"
/>
<TextBlock x:Name="PolyStatus" Margin="0,10,0,0" />
<Button
x:Name = "PolyFinishBtn"
Content = "Добавить многоугольник"
Margin = "0,10,0,0"
IsEnabled = "False"
Click = "ClickPolyFinish"
/>
</StackPanel>
</TabItem>
<TabItem Header="Треугольник">
<StackPanel Margin="10">
<TextBlock Text="Имя" />
<TextBox x:Name="TriName" />
<TextBlock Text="Ax" />
<TextBox x:Name="Ax" />
<TextBlock Text="Ay" />
<TextBox x:Name="Ay" />
<TextBlock Text="Bx" />
<TextBox x:Name="Bx" />
<TextBlock Text="By" />
<TextBox x:Name="By" />
<TextBlock Text="Cx" />
<TextBox x:Name="Cx" />
<TextBlock Text="Cy" />
<TextBox x:Name="Cy" />
<Button Content="Добавить" Margin="0,10,0,0" Click="ClickAddTriangle" />
</StackPanel>
</TabItem>
<TabItem Header="Поле. Солнце. Человек. Текст">
<StackPanel Margin="10">
<TextBlock Text="Имя" />
<TextBox x:Name="SceneName" />
<TextBlock Text="X" />
<TextBox x:Name="SceneX" />
<TextBlock Text="Y" />
<TextBox x:Name="SceneY" />
<TextBlock Text="W" />
<TextBox x:Name="SceneW" />
<TextBlock Text="H" />
<TextBox x:Name="SceneH" />
<Button Content="Добавить" Margin="0,10,0,0" Click="ClickAddTerrainPointSunPointHumanPointText"/>
</StackPanel>
</TabItem>
</TabControl>
</TabItem>
<TabItem Header="Квадрат">
<TabItem Header="Управление фигурами">
<StackPanel Margin="10">
<TextBlock Text="Имя" /> <TextBox x:Name="SquareName" />
<TextBlock Text="X" /> <TextBox x:Name="SquareX" />
<TextBlock Text="Y" /> <TextBox x:Name="SquareY" />
<TextBlock Text="Side" /> <TextBox x:Name="SquareSide" />
<Button Content="Добавить" Margin="0,10,0,0" Click="ClickAddSquare" />
</StackPanel>
</TabItem>
<TextBlock Text="Выбор фигуры" />
<TabItem Header="Эллипс">
<StackPanel Margin="10">
<TextBlock Text="Имя" /> <TextBox x:Name="EllipseName" />
<TextBlock Text="X" /> <TextBox x:Name="EllipseX" />
<TextBlock Text="Y" /> <TextBox x:Name="EllipseY" />
<TextBlock Text="W" /> <TextBox x:Name="EllipseW" />
<TextBlock Text="H" /> <TextBox x:Name="EllipseH" />
<Button Content="Добавить" Margin="0,10,0,0" Click="ClickAddEllipse" />
</StackPanel>
</TabItem>
<ComboBox x:Name="FigureCombo" Height="28" />
<TabItem Header="Окружность">
<StackPanel Margin="10">
<TextBlock Text="Имя" /> <TextBox x:Name="CircleName" />
<TextBlock Text="X" /> <TextBox x:Name="CircleX" />
<TextBlock Text="Y" /> <TextBox x:Name="CircleY" />
<TextBlock Text="Диаметр" /> <TextBox x:Name="CircleD" />
<Button Content="Добавить" Margin="0,10,0,0" Click="ClickAddCircle" />
</StackPanel>
</TabItem>
<Separator Margin="0,10,0,10" />
<TabItem Header="Многоугольник">
<StackPanel Margin="10">
<TextBlock Text="Имя" /> <TextBox x:Name="PolyName" />
<TextBlock Text="Кол-во вершин" /> <TextBox x:Name="PolyCount" />
<TextBlock Text="Смещение dX" />
<TextBox x:Name="MoveDx" />
<TextBlock Text="Смещение dY" />
<TextBox x:Name="MoveDy" />
<Button
x:Name = "PolyStartBtn"
Content = "Начать ввод точек"
Margin = "0,10,0,0"
Click = "ClickPolyStart"
/>
<Separator Margin="0,5,0,5" />
<TextBlock Text="X точки" /> <TextBox x:Name="PolyX" IsEnabled="False" />
<TextBlock Text="Y точки" /> <TextBox x:Name="PolyY" IsEnabled="False" />
<Button
x:Name = "PolyAddPointBtn"
Content = "Добавить точку"
Margin = "0,10,0,0"
IsEnabled = "False"
Click = "ClickPolyAddPoint"
/>
<TextBlock x:Name="PolyStatus" Margin="0,10,0,0" />
<Button
x:Name = "PolyFinishBtn"
Content = "Добавить многоугольник"
Margin = "0,10,0,0"
IsEnabled = "False"
Click = "ClickPolyFinish"
/>
</StackPanel>
</TabItem>
<TabItem Header="Треугольник">
<StackPanel Margin="10">
<TextBlock Text="Имя" /> <TextBox x:Name="TriName" />
<TextBlock Text="Ax" /> <TextBox x:Name="Ax" />
<TextBlock Text="Ay" /> <TextBox x:Name="Ay" />
<TextBlock Text="Bx" /> <TextBox x:Name="Bx" />
<TextBlock Text="By" /> <TextBox x:Name="By" />
<TextBlock Text="Cx" /> <TextBox x:Name="Cx" />
<TextBlock Text="Cy" /> <TextBox x:Name="Cy" />
<Button Content="Добавить" Margin="0,10,0,0" Click="ClickAddTriangle" />
</StackPanel>
</TabItem>
<TabItem Header="Поле. Солнце. Человек. Текст">
<StackPanel Margin="10">
<TextBlock Text="Имя" /> <TextBox x:Name="SceneName" />
<TextBlock Text="X" /> <TextBox x:Name="SceneX" />
<TextBlock Text="Y" /> <TextBox x:Name="SceneY" />
<TextBlock Text="W" /> <TextBox x:Name="SceneW" />
<TextBlock Text="H" /> <TextBox x:Name="SceneH" />
<Button Content="Добавить" Margin="0,10,0,0" Click="ClickAddTerrainPointSunPointHumanPointText"/>
<Button Content="Переместить" Margin="0,10,0,0" Click="ClickMoveSelected" />
<Button Content="Удалить" Margin="0,10,0,0" Click="ClickDeleteSelected" />
</StackPanel>
</TabItem>
</TabControl>
</TabItem>
<TabItem Header="Управление фигурами">
<StackPanel Margin="10">
<TextBlock Text="Выбор фигуры" />
<ComboBox x:Name="FigureCombo" Height="28" />
<Separator Margin="0,10,0,10" />
<TextBlock Text="Смещение dX" /> <TextBox x:Name="MoveDx" />
<TextBlock Text="Смещение dY" /> <TextBox x:Name="MoveDy" />
<Button Content="Переместить" Margin="0,10,0,0" Click="ClickMoveSelected" />
<Button Content="Удалить" Margin="0,10,0,0" Click="ClickDeleteSelected" />
</StackPanel>
</TabItem>
</TabControl>
<Border Grid.Column="1" BorderBrush="Gray" BorderThickness="1" x:Name="ImgBorder" Margin="8">
<Image
x:Name="DrawingImage"
Stretch="Uniform"
MouseLeftButtonDown="MouseLeftButtonDown"
MouseMove="MouseMove"
MouseLeftButtonUp="MouseLeftButtonUp"
/>
</ScrollViewer>
</Border>
<Border Grid.Column="1" Style="{StaticResource Card}" Margin="6,10,10,10">
<Grid>
<TextBlock Text="Клик по фигуре = выбор, перетаскивание = перемещение"
Foreground="{StaticResource TextBrushHint}"
Margin="2,0,0,10"/>
<Border Margin="0,24,0,0"
Background="White"
BorderBrush="{StaticResource BorderBrushSoft}"
BorderThickness="1"
CornerRadius="12"
x:Name="ImgBorder"
>
<Image
x:Name="DrawingImage"
Stretch="Uniform"
MouseLeftButtonDown="MouseLeftButtonDown"
MouseMove="MouseMove"
MouseLeftButtonUp="MouseLeftButtonUp"
/>
</Border>
</Grid>
</Border>
</Grid>
</Window>