- tweak: flexbox think
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
|
||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AFlexPanel_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E3_003Fresharper_002Dhost_003FSourcesCache_003Fd89f5cdd6fcc709bf64bb344b6d9a7e136391412b56d89776722229aa8109c_003FFlexPanel_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AFlexPanel_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2026_002E1_003Fresharper_002Dhost_003FSourcesCache_003Fd89f5cdd6fcc709bf64bb344b6d9a7e136391412b56d89776722229aa8109c_003FFlexPanel_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AJustifyContent_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2026_002E1_003Fresharper_002Dhost_003FSourcesCache_003F522b8460d4184035d197a487d8418b71d93fc775e2ab45be92655cd4a3563f5_003FJustifyContent_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ALayoutable_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E3_003Fresharper_002Dhost_003FSourcesCache_003F1edefc737d6d841fe8ded6818ca6b2f86522867bc89937ba54a07e7b7df7de_003FLayoutable_002Ecs/@EntryIndexedValue">ForceIncluded</s:String></wpf:ResourceDictionary>
|
||||
@@ -11,7 +11,7 @@ public class PauseConverter : IValueConverter
|
||||
|
||||
public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
|
||||
{
|
||||
return value is true ? "Продолжить" : "Пауза";
|
||||
return value is true ? "▶" : "||";
|
||||
}
|
||||
|
||||
public object? ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
|
||||
|
||||
@@ -21,6 +21,9 @@ public partial class MainViewModel : ViewModelBase
|
||||
|
||||
partial void OnArraySizeChanged(int value)
|
||||
{
|
||||
if (IsSorting)
|
||||
StopSort();
|
||||
|
||||
GenerateArray();
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
<UserControl xmlns="https://github.com/avaloniaui"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:vm="using:LaborWork"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:viewModels="clr-namespace:LaborWork.ViewModels"
|
||||
@@ -10,71 +9,163 @@
|
||||
x:Class="LaborWork.Views.MainView"
|
||||
x:DataType="viewModels:MainViewModel">
|
||||
|
||||
<DockPanel Margin="20">
|
||||
<panels:FlexPanel DockPanel.Dock="Top"
|
||||
Direction="Row"
|
||||
AlignItems="Center" Wrap="Wrap"
|
||||
Margin="0 0 0 20">
|
||||
<Button Command="{Binding GenerateArrayCommand}" HorizontalContentAlignment="Center"
|
||||
Content="Сгенерировать" Width="140"
|
||||
IsVisible="{Binding !IsSorting}"/>
|
||||
<Button Command="{Binding StartSortCommand}" HorizontalContentAlignment="Center"
|
||||
Content="Старт" Width="140"
|
||||
IsVisible="{Binding !IsSorting}"/>
|
||||
<Button Command="{Binding StopSortCommand}" HorizontalContentAlignment="Center"
|
||||
Content="Стоп" Width="140"
|
||||
IsVisible="{Binding IsSorting}"/>
|
||||
<Button Command="{Binding TogglePauseCommand}" HorizontalContentAlignment="Center"
|
||||
Width="140"
|
||||
IsVisible="{Binding IsSorting}">
|
||||
<Button.Content>
|
||||
<TextBlock Text="{Binding IsPaused, Converter={x:Static local:PauseConverter.Instance}}"/>
|
||||
</Button.Content>
|
||||
</Button>
|
||||
|
||||
<StackPanel Spacing="5" Orientation="Horizontal">
|
||||
<TextBlock Text="Размер:" VerticalAlignment="Center"/>
|
||||
<Slider Value="{Binding ArraySize}" Minimum="10" Maximum="100" Width="150"/>
|
||||
<TextBlock VerticalAlignment="Center" Text="{Binding ArraySize}" Width="30"/>
|
||||
</StackPanel>
|
||||
<UserControl.Styles>
|
||||
<Style Selector="Button">
|
||||
<Setter Property="Background">
|
||||
<Setter.Value>
|
||||
<LinearGradientBrush StartPoint="0%,0%" EndPoint="0%,100%">
|
||||
<GradientStop Offset="0" Color="#40FFFFFF"/>
|
||||
<GradientStop Offset="1" Color="#20FFFFFF"/>
|
||||
</LinearGradientBrush>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
<Setter Property="Foreground" Value="White"/>
|
||||
<Setter Property="BorderThickness" Value="1"/>
|
||||
<Setter Property="BorderBrush" Value="#30FFFFFF"/>
|
||||
<Setter Property="CornerRadius" Value="16"/>
|
||||
<Setter Property="Padding" Value="24,14"/>
|
||||
<Setter Property="FontSize" Value="14"/>
|
||||
<Setter Property="FontWeight" Value="SemiBold"/>
|
||||
<Setter Property="Cursor" Value="Hand"/>
|
||||
</Style>
|
||||
<Style Selector="Button:pointerover /template/ ContentPresenter">
|
||||
<Setter Property="Background">
|
||||
<Setter.Value>
|
||||
<LinearGradientBrush StartPoint="0%,0%" EndPoint="0%,100%">
|
||||
<GradientStop Offset="0" Color="#50FFFFFF"/>
|
||||
<GradientStop Offset="1" Color="#30FFFFFF"/>
|
||||
</LinearGradientBrush>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
<Style Selector="Button:pressed /template/ ContentPresenter">
|
||||
<Setter Property="Background">
|
||||
<Setter.Value>
|
||||
<LinearGradientBrush StartPoint="0%,0%" EndPoint="0%,100%">
|
||||
<GradientStop Offset="0" Color="#25FFFFFF"/>
|
||||
<GradientStop Offset="1" Color="#15FFFFFF"/>
|
||||
</LinearGradientBrush>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
</UserControl.Styles>
|
||||
|
||||
<StackPanel Spacing="5" Orientation="Horizontal">
|
||||
<TextBlock Text="Скорость:" VerticalAlignment="Center"/>
|
||||
<Slider Value="{Binding Speed}" Minimum="10" Maximum="500" Width="150"
|
||||
TickFrequency="10" IsSnapToTickEnabled="True"/>
|
||||
</StackPanel>
|
||||
</panels:FlexPanel>
|
||||
<Border Padding="24">
|
||||
<Border.Background>
|
||||
<LinearGradientBrush StartPoint="0%,0%" EndPoint="100%,100%">
|
||||
<GradientStop Offset="0" Color="#0D1B2A"/>
|
||||
<GradientStop Offset="0.5" Color="#1B263B"/>
|
||||
<GradientStop Offset="1" Color="#415A77"/>
|
||||
</LinearGradientBrush>
|
||||
</Border.Background>
|
||||
|
||||
<Border BorderBrush="Gray" BorderThickness="1" CornerRadius="5" Background="#1E1E1E">
|
||||
<ItemsControl ItemsSource="{Binding Items}">
|
||||
<ItemsControl.ItemsPanel>
|
||||
<ItemsPanelTemplate>
|
||||
<StackPanel Orientation="Horizontal"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Bottom"
|
||||
Spacing="2"/>
|
||||
</ItemsPanelTemplate>
|
||||
</ItemsControl.ItemsPanel>
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<Panel>
|
||||
<Border Width="20"
|
||||
Background="{Binding Color}"
|
||||
CornerRadius="2 2 0 0" VerticalAlignment="Bottom"
|
||||
ToolTip.Tip="{Binding Value}" Height="{Binding Value}">
|
||||
|
||||
</Border>
|
||||
<LayoutTransformControl VerticalAlignment="Bottom">
|
||||
<LayoutTransformControl.LayoutTransform>
|
||||
<RotateTransform Angle="90"/>
|
||||
</LayoutTransformControl.LayoutTransform>
|
||||
<TextBlock
|
||||
Text="{Binding Value, StringFormat={}{0:0.00}}"/>
|
||||
</LayoutTransformControl>
|
||||
</Panel>
|
||||
</DataTemplate>
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
<Border BoxShadow="0 8 40 0 #60000000" CornerRadius="24" Margin="3">
|
||||
<Border.Background>
|
||||
<LinearGradientBrush StartPoint="0%,0%" EndPoint="0%,100%">
|
||||
<GradientStop Offset="0" Color="#30FFFFFF"/>
|
||||
<GradientStop Offset="0.5" Color="#15FFFFFF"/>
|
||||
<GradientStop Offset="1" Color="#08FFFFFF"/>
|
||||
</LinearGradientBrush>
|
||||
</Border.Background>
|
||||
|
||||
<Border BorderBrush="#40FFFFFF" BorderThickness="1" CornerRadius="23" Margin="2">
|
||||
<DockPanel Margin="28">
|
||||
<panels:FlexPanel DockPanel.Dock="Top"
|
||||
Direction="Row"
|
||||
AlignItems="Center" Wrap="Wrap" JustifyContent="SpaceBetween"
|
||||
Margin="0 0 0 24">
|
||||
|
||||
<Border CornerRadius="20" Padding="18,12" Margin="0,16,16,0"
|
||||
Background="#20FFFFFF" BorderBrush="#30FFFFFF" BorderThickness="1">
|
||||
<StackPanel Orientation="Horizontal" Spacing="12">
|
||||
<Button Command="{Binding GenerateArrayCommand}"
|
||||
IsVisible="{Binding !IsSorting}"
|
||||
HorizontalContentAlignment="Center" Content="Генерация" Width="176"/>
|
||||
<Button Command="{Binding StartSortCommand}"
|
||||
HorizontalContentAlignment="Center"
|
||||
Content="▶" Width="76"
|
||||
IsVisible="{Binding !IsSorting}"/>
|
||||
<Button Command="{Binding StopSortCommand}"
|
||||
HorizontalContentAlignment="Center"
|
||||
Content="Стоп" Width="176"
|
||||
IsVisible="{Binding IsSorting}"/>
|
||||
<Button Command="{Binding TogglePauseCommand}" Width="80"
|
||||
HorizontalContentAlignment="Center"
|
||||
IsVisible="{Binding IsSorting}">
|
||||
<Button.Content>
|
||||
<TextBlock Text="{Binding IsPaused, Converter={x:Static local:PauseConverter.Instance}}"/>
|
||||
</Button.Content>
|
||||
</Button>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<Border CornerRadius="20" Padding="18,12" Margin="0,16,16,0"
|
||||
Background="#15FFFFFF" BorderBrush="#25FFFFFF" BorderThickness="1">
|
||||
<StackPanel Spacing="10" Orientation="Horizontal">
|
||||
<TextBlock Text="Кол-во" Foreground="#CCC" VerticalAlignment="Center" FontSize="14"/>
|
||||
<Slider Value="{Binding ArraySize}" Minimum="10" Maximum="100" Width="110"/>
|
||||
<Border Background="#25FFFFFF" CornerRadius="10" Padding="14,8"
|
||||
BorderBrush="#35FFFFFF" BorderThickness="1">
|
||||
<TextBlock VerticalAlignment="Center" Text="{Binding ArraySize}"
|
||||
Foreground="White" FontWeight="Bold" FontSize="14"/>
|
||||
</Border>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<Border CornerRadius="20" Margin="0, 16, 0, 0" Padding="18,12"
|
||||
Background="#15FFFFFF" BorderBrush="#25FFFFFF" BorderThickness="1">
|
||||
<StackPanel Spacing="10" Orientation="Horizontal">
|
||||
<TextBlock Text="Скорость" Foreground="#CCC" VerticalAlignment="Center" FontSize="14"/>
|
||||
<Slider Value="{Binding Speed}" Minimum="10" Maximum="500" Width="110"
|
||||
TickFrequency="10" IsSnapToTickEnabled="True"/>
|
||||
<Border Background="#25FFFFFF" CornerRadius="10" Padding="14,8"
|
||||
BorderBrush="#35FFFFFF" BorderThickness="1">
|
||||
<TextBlock VerticalAlignment="Center" Text="{Binding Speed}"
|
||||
Foreground="White" FontWeight="Bold" FontSize="14"/>
|
||||
</Border>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
</panels:FlexPanel>
|
||||
|
||||
<Border HorizontalAlignment="Stretch" CornerRadius="24" Background="#08FFFFFF" BorderBrush="#20FFFFFF" BorderThickness="1">
|
||||
<ItemsControl ItemsSource="{Binding Items}">
|
||||
<ItemsControl.ItemsPanel>
|
||||
<ItemsPanelTemplate>
|
||||
<panels:FlexPanel
|
||||
HorizontalAlignment="Stretch"
|
||||
VerticalAlignment="Bottom"
|
||||
JustifyContent="Center" ColumnSpacing="5"
|
||||
/>
|
||||
</ItemsPanelTemplate>
|
||||
</ItemsControl.ItemsPanel>
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<Border MinWidth="16"
|
||||
Background="{Binding Color}"
|
||||
CornerRadius="4 4 0 0" VerticalAlignment="Bottom"
|
||||
ToolTip.Tip="{Binding Value}" Height="{Binding Value}">
|
||||
<Border.OpacityMask>
|
||||
<LinearGradientBrush StartPoint="0%,0%" EndPoint="0%,100%">
|
||||
<GradientStop Offset="0" Color="#FFFFFF"/>
|
||||
<GradientStop Offset="0.3" Color="#DDDDDD"/>
|
||||
<GradientStop Offset="1" Color="#666666"/>
|
||||
</LinearGradientBrush>
|
||||
</Border.OpacityMask>
|
||||
<LayoutTransformControl VerticalAlignment="Bottom">
|
||||
<LayoutTransformControl.LayoutTransform>
|
||||
<RotateTransform Angle="90"/>
|
||||
</LayoutTransformControl.LayoutTransform>
|
||||
<TextBlock
|
||||
Text="{Binding Value, StringFormat={}{0:0.0}}"/>
|
||||
</LayoutTransformControl>
|
||||
</Border>
|
||||
</DataTemplate>
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
|
||||
</Border>
|
||||
</DockPanel>
|
||||
</Border>
|
||||
</Border>
|
||||
</DockPanel>
|
||||
</UserControl>
|
||||
</Border>
|
||||
</UserControl>
|
||||
|
||||
Reference in New Issue
Block a user