Moved Menu Controls from StackPanel into Grid - Added Min(Height/Width) - Changed Colors

This commit is contained in:
ti_mo
2025-10-21 22:46:31 +02:00
parent c5c7463c96
commit 0a8693b1f8
+29 -26
View File
@@ -17,6 +17,8 @@
Background="Transparent" Background="Transparent"
Width="{Binding Width, Mode=TwoWay}" Width="{Binding Width, Mode=TwoWay}"
Height="{Binding Height, Mode=TwoWay}" Height="{Binding Height, Mode=TwoWay}"
MinWidth="1200"
MinHeight="700"
> >
<Design.DataContext> <Design.DataContext>
@@ -25,6 +27,10 @@
<vm:MainWindowViewModel/> <vm:MainWindowViewModel/>
</Design.DataContext> </Design.DataContext>
<Window.Resources>
<models:EmptyStringIntConverter x:Key="EmptyStringIntConverter"/>
</Window.Resources>
<Window.Styles> <Window.Styles>
<Style Selector="Border.InnerCard"> <Style Selector="Border.InnerCard">
<Setter Property="CornerRadius" Value="7.5"/> <Setter Property="CornerRadius" Value="7.5"/>
@@ -59,7 +65,7 @@
<TextBlock Text="Maximal Point Count" Foreground="White"/> <TextBlock Text="Maximal Point Count" Foreground="White"/>
<Grid ColumnDefinitions="4*,1*"> <Grid ColumnDefinitions="4*,1*">
<Slider Grid.Column="0" Value="{Binding PointCount, Mode=TwoWay}" Margin="5" Minimum="20" Maximum="200"/> <Slider Grid.Column="0" Value="{Binding PointCount, Mode=TwoWay}" Margin="5" Minimum="20" Maximum="200"/>
<TextBox Grid.Column="1" Text="{Binding PointCount, Mode=TwoWay}" FontSize="18" Foreground="White" Background="#30ffffff" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"/> <NumericUpDown Height="20" Grid.Column="1" ShowButtonSpinner="False" Value="{Binding PointCount, Mode=TwoWay}" Minimum="1" Increment="1" FormatString="F0" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"/>
</Grid> </Grid>
</StackPanel> </StackPanel>
</Border> </Border>
@@ -68,8 +74,7 @@
<TextBlock Text="Minimal Point Distance" Foreground="White"/> <TextBlock Text="Minimal Point Distance" Foreground="White"/>
<Grid ColumnDefinitions="4*,1*"> <Grid ColumnDefinitions="4*,1*">
<Slider Grid.Column="0" Value="{Binding MinPointDistance, Mode=TwoWay}" Margin="5" Minimum="1" Maximum="10"/> <Slider Grid.Column="0" Value="{Binding MinPointDistance, Mode=TwoWay}" Margin="5" Minimum="1" Maximum="10"/>
<TextBox Grid.Column="1" Text="{Binding MinPointDistance, Mode=TwoWay}" FontSize="18" Foreground="White" Background="#30ffffff" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"/> <NumericUpDown Height="20" Grid.Column="1" ShowButtonSpinner="False" Value="{Binding MinPointDistance, Mode=TwoWay}" Minimum="1" Increment="1" FormatString="F0" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"/> </Grid>
</Grid>
</StackPanel> </StackPanel>
</Border> </Border>
<Border Classes="InnerCard"> <Border Classes="InnerCard">
@@ -77,21 +82,25 @@
<TextBlock Text="Genearation Speed" Foreground="White"/> <TextBlock Text="Genearation Speed" Foreground="White"/>
<Grid ColumnDefinitions="4*,1*"> <Grid ColumnDefinitions="4*,1*">
<Slider Grid.Column="0" Value="{Binding GenerationDelay, Mode=TwoWay}" Margin="5" Minimum="0" Maximum="1000"/> <Slider Grid.Column="0" Value="{Binding GenerationDelay, Mode=TwoWay}" Margin="5" Minimum="0" Maximum="1000"/>
<TextBox Grid.Column="1" Text="{Binding GenerationDelay, Mode=TwoWay}" FontSize="18" Foreground="White" Background="#30ffffff" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"/> <NumericUpDown Height="20" Grid.Column="1" ShowButtonSpinner="False" Value="{Binding GenerationDelay, Mode=TwoWay}" Minimum="0" Increment="1" FormatString="F0" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"/>
</Grid> </Grid>
</StackPanel> </StackPanel>
</Border> </Border>
<Border Classes="InnerCard"> <Border Classes="InnerCard">
<StackPanel Orientation="Vertical"> <StackPanel Orientation="Vertical">
<TextBlock Text="Enabled Visuals:" Foreground="White"/> <TextBlock Text="Enabled Visuals:" Foreground="White"/>
<StackPanel Orientation="Horizontal"> <Grid ColumnDefinitions="1*, 1*">
<CheckBox Content="Points" IsChecked="{Binding PointsVisible}" Foreground="White" Margin="10,0"/> <CheckBox HorizontalAlignment="Left" Content="Points" IsChecked="{Binding PointsVisible}" Foreground="White" Margin="10,0"/>
<CheckBox Content="Convex Hull" IsChecked="{Binding EdgesVisible}" Foreground="White" Margin="10,0"/> <CheckBox Grid.Column="1" HorizontalAlignment="Left" Content="Convex Hull" IsChecked="{Binding EdgesVisible}" Foreground="White" Margin="10,0"/>
</StackPanel> </Grid>
<StackPanel Orientation="Horizontal"> <Grid ColumnDefinitions="1*, 1*">
<CheckBox Content="Circles" IsChecked="{Binding CirclesVisible}" Foreground="White" Margin="10,0"/> <CheckBox HorizontalAlignment="Left" Content="Circles" IsChecked="{Binding CirclesVisible}" Foreground="White" Margin="10,0"/>
<CheckBox Content="Triangles" IsChecked="{Binding TrianglesVisible}" Foreground="White" Margin="10,0"/> <CheckBox Grid.Column="1" HorizontalAlignment="Left" Content="Triangles" IsChecked="{Binding TrianglesVisible}" Foreground="White" Margin="10,0"/>
</StackPanel> </Grid>
<Grid ColumnDefinitions="1*, 1*">
<CheckBox HorizontalAlignment="Left" Content="Voronoi" IsChecked="{Binding VoronoiVisible}" Foreground="White" Margin="10,0"/>
<!-- <CheckBox Content="Triangles" IsChecked="{Binding TrianglesVisible}" Foreground="White" Margin="10,0"/> -->
</Grid>
</StackPanel> </StackPanel>
</Border> </Border>
</StackPanel> </StackPanel>
@@ -99,15 +108,7 @@
</Grid> </Grid>
</Border> </Border>
</Grid> </Grid>
<Canvas Grid.Row="0" Grid.RowSpan="2" <Canvas Grid.Row="0" Grid.RowSpan="2" x:Name="Scene" Background="#dd000000" ClipToBounds="True" PointerPressed="Scene_OnPointerPressed" PointerMoved="Scene_OnPointerMoved" PointerReleased="Scene_OnPointerReleased" PointerWheelChanged="Scene_OnWheel">
x:Name="Scene"
Background="#dd000000"
ClipToBounds="True"
PointerPressed="Scene_OnPointerPressed"
PointerMoved="Scene_OnPointerMoved"
PointerReleased="Scene_OnPointerReleased"
PointerWheelChanged="Scene_OnWheel"
>
<Canvas x:Name="SceneContent"> <Canvas x:Name="SceneContent">
<Canvas.RenderTransform> <Canvas.RenderTransform>
<TransformGroup> <TransformGroup>
@@ -118,7 +119,8 @@
<ItemsControl ItemsSource="{Binding Edges}" <ItemsControl ItemsSource="{Binding Edges}"
Width="{Binding Bounds.Width, ElementName=Scene}" Width="{Binding Bounds.Width, ElementName=Scene}"
Height="{Binding Bounds.Height, ElementName=Scene}" Height="{Binding Bounds.Height, ElementName=Scene}"
IsHitTestVisible="False"> IsHitTestVisible="False"
>
<ItemsControl.ItemsPanel> <ItemsControl.ItemsPanel>
<ItemsPanelTemplate> <ItemsPanelTemplate>
<Canvas IsVisible="{Binding EdgesVisible}"/> <Canvas IsVisible="{Binding EdgesVisible}"/>
@@ -140,7 +142,8 @@
<ItemsControl ItemsSource="{Binding Circles}" <ItemsControl ItemsSource="{Binding Circles}"
Width="{Binding Bounds.Width, ElementName=Scene}" Width="{Binding Bounds.Width, ElementName=Scene}"
Height="{Binding Bounds.Height, ElementName=Scene}" Height="{Binding Bounds.Height, ElementName=Scene}"
IsHitTestVisible="False"> IsHitTestVisible="False"
>
<ItemsControl.ItemsPanel> <ItemsControl.ItemsPanel>
<ItemsPanelTemplate> <ItemsPanelTemplate>
<Canvas IsVisible="{Binding CirclesVisible}"/> <Canvas IsVisible="{Binding CirclesVisible}"/>
@@ -148,7 +151,7 @@
</ItemsControl.ItemsPanel> </ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate> <ItemsControl.ItemTemplate>
<DataTemplate x:DataType="models:Geometries+Circle"> <DataTemplate x:DataType="models:Geometries+Circle">
<Ellipse Stroke="DarkOrange" StrokeThickness="1.5" <Ellipse Stroke="BlueViolet" StrokeThickness="1.5"
Width="{Binding Diameter}" Width="{Binding Diameter}"
Height="{Binding Diameter}" Height="{Binding Diameter}"
> >
@@ -165,14 +168,14 @@
IsHitTestVisible="False"> IsHitTestVisible="False">
<ItemsControl.ItemsPanel> <ItemsControl.ItemsPanel>
<ItemsPanelTemplate> <ItemsPanelTemplate>
<Canvas IsVisible="{Binding CirclesVisible}"/> <Canvas IsVisible="{Binding VoronoiVisible}"/>
</ItemsPanelTemplate> </ItemsPanelTemplate>
</ItemsControl.ItemsPanel> </ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate> <ItemsControl.ItemTemplate>
<DataTemplate x:DataType="models:Geometries+Edge"> <DataTemplate x:DataType="models:Geometries+Edge">
<Line StartPoint="{Binding Start}" <Line StartPoint="{Binding Start}"
EndPoint="{Binding End}" EndPoint="{Binding End}"
Stroke="GreenYellow" StrokeThickness="2" Stroke="DarkOrange" StrokeThickness="2"
> >
<Line.RenderTransform> <Line.RenderTransform>
<TranslateTransform X="{Binding Start}" Y="{Binding End}"/> <TranslateTransform X="{Binding Start}" Y="{Binding End}"/>