Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/sn4k3/UVtools.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'UVtools.WPF/Controls/Tools/ToolLithophaneControl.axaml')
-rw-r--r--UVtools.WPF/Controls/Tools/ToolLithophaneControl.axaml246
1 files changed, 246 insertions, 0 deletions
diff --git a/UVtools.WPF/Controls/Tools/ToolLithophaneControl.axaml b/UVtools.WPF/Controls/Tools/ToolLithophaneControl.axaml
new file mode 100644
index 0000000..39d0207
--- /dev/null
+++ b/UVtools.WPF/Controls/Tools/ToolLithophaneControl.axaml
@@ -0,0 +1,246 @@
+<UserControl xmlns="https://github.com/avaloniaui"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:i="clr-namespace:Projektanker.Icons.Avalonia;assembly=Projektanker.Icons.Avalonia"
+ mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
+ x:Class="UVtools.WPF.Controls.Tools.ToolLithophaneControl">
+ <Grid ColumnDefinitions="Auto,10,350">
+ <StackPanel Spacing="10">
+ <Grid
+ RowDefinitions="Auto,10,Auto,10,Auto,10,Auto,10,Auto,10,Auto,10,Auto,10,Auto,10,Auto,10,Auto,10,Auto,10,Auto,10,Auto"
+ ColumnDefinitions="Auto,10,190,20,Auto,10,190">
+
+ <TextBlock Grid.Row="0" Grid.Column="0"
+ VerticalAlignment="Center"
+ Text="Layer height:"/>
+ <NumericUpDown Grid.Row="0" Grid.Column="2"
+ Classes="ValueLabel ValueLabel_mm"
+ Increment="0.01"
+ Minimum="0.01"
+ Maximum="0.30"
+ FormatString="F3"
+ Value="{Binding Operation.LayerHeight}"/>
+
+ <TextBlock Grid.Row="0" Grid.Column="4"
+ VerticalAlignment="Center"
+ HorizontalAlignment="Right"
+ Text="Bottom layer count:"/>
+ <NumericUpDown Grid.Row="0" Grid.Column="6"
+ Classes="ValueLabel ValueLabel_layers"
+ Increment="1"
+ Minimum="1"
+ Maximum="1000"
+ Value="{Binding Operation.BottomLayerCount}"/>
+
+
+ <TextBlock Grid.Row="2" Grid.Column="0"
+ VerticalAlignment="Center"
+ Text="Bottom exposure:"/>
+ <NumericUpDown Grid.Row="2" Grid.Column="2"
+ Classes="ValueLabel ValueLabel_s"
+ Increment="0.5"
+ Minimum="0.1"
+ Maximum="200"
+ FormatString="F2"
+ Value="{Binding Operation.BottomExposure}"/>
+ <TextBlock Grid.Row="2" Grid.Column="4"
+ VerticalAlignment="Center"
+ HorizontalAlignment="Right"
+ Text="Normal exposure:"/>
+ <NumericUpDown Grid.Row="2" Grid.Column="6"
+ Classes="ValueLabel ValueLabel_s"
+ Increment="0.5"
+ Minimum="0.1"
+ Maximum="200"
+ FormatString="F2"
+ Value="{Binding Operation.NormalExposure}"/>
+
+ <TextBlock Grid.Row="4" Grid.Column="0"
+ VerticalAlignment="Center"
+ Text="Image:"/>
+
+ <Grid Grid.Row="4" Grid.Column="2" Grid.ColumnSpan="5"
+ ColumnDefinitions="*,Auto">
+ <TextBox Grid.Column="0"
+ IsReadOnly="True"
+ VerticalAlignment="Center"
+ Text="{Binding Operation.FilePath}"/>
+ <Button Grid.Column="1"
+ VerticalAlignment="Stretch"
+ Command="{Binding SelectFile}"
+ i:Attached.Icon="fas fa-file-import"/>
+ </Grid>
+
+ <TextBlock Grid.Row="6" Grid.Column="0"
+ VerticalAlignment="Center"
+ Text="Rotate:"/>
+
+ <ComboBox Grid.Row="6" Grid.Column="2"
+ HorizontalAlignment="Stretch"
+ Items="{Binding Operation.Rotate, Converter={StaticResource EnumToCollectionConverter}, Mode=OneTime}"
+ SelectedItem="{Binding Operation.Rotate, Converter={StaticResource FromValueDescriptionToEnumConverter}}"/>
+
+ <StackPanel Grid.Row="6" Grid.Column="4" Grid.ColumnSpan="3"
+ Orientation="Horizontal" Spacing="20">
+ <CheckBox VerticalAlignment="Center"
+ IsChecked="{Binding Operation.Mirror}"
+ Content="Mirror"/>
+
+ <CheckBox VerticalAlignment="Center"
+ IsChecked="{Binding Operation.InvertColor}"
+ Content="Invert color"/>
+ </StackPanel>
+
+ <TextBlock Grid.Row="8" Grid.Column="0"
+ VerticalAlignment="Center"
+ Text="Resize:"/>
+
+ <NumericUpDown Grid.Row="8" Grid.Column="2"
+ Classes="ValueLabel ValueLabel_percent"
+ Minimum="1"
+ Maximum="900"
+ Increment="1"
+ FormatString="F2"
+ Value="{Binding Operation.ResizeFactor}"/>
+
+ <TextBlock Grid.Row="10" Grid.Column="0"
+ VerticalAlignment="Center"
+ Text="Brightness gain:"/>
+
+ <NumericUpDown Grid.Row="10" Grid.Column="2"
+ Classes="ValueLabel ValueLabel_sun"
+ Minimum="-128"
+ Maximum="127"
+ Increment="1"
+ Value="{Binding Operation.BrightnessGain}"/>
+
+ <CheckBox Grid.Row="10" Grid.Column="4" Grid.ColumnSpan="3"
+ VerticalAlignment="Center"
+ IsChecked="{Binding Operation.EnhanceContrast}"
+ Content="Enhance contrast"/>
+
+ <TextBlock Grid.Row="12" Grid.Column="0"
+ VerticalAlignment="Center"
+ Text="Remove noise:"/>
+
+ <NumericUpDown Grid.Row="12" Grid.Column="2"
+ Classes="ValueLabel ValueLabel_px"
+ Minimum="0"
+ Maximum="255"
+ Increment="1"
+ Value="{Binding Operation.RemoveNoiseIterations}"/>
+
+ <TextBlock Grid.Row="12" Grid.Column="4"
+ VerticalAlignment="Center"
+ HorizontalAlignment="Right"
+ Text="Gap closing:"/>
+
+ <NumericUpDown Grid.Row="12" Grid.Column="6"
+ Classes="ValueLabel ValueLabel_px"
+ Minimum="0"
+ Maximum="255"
+ Increment="1"
+ Value="{Binding Operation.GapClosingIterations}"/>
+
+ <TextBlock Grid.Row="14" Grid.Column="0"
+ VerticalAlignment="Center"
+ Text="Gaussian blur:"/>
+
+ <NumericUpDown Grid.Row="14" Grid.Column="2"
+ Classes="ValueLabel ValueLabel_px"
+ Minimum="0"
+ Maximum="255"
+ Increment="1"
+ Value="{Binding Operation.GaussianBlur}"/>
+
+ <TextBlock Grid.Row="16" Grid.Column="0"
+ VerticalAlignment="Center"
+ Text="Start threshold:"/>
+
+ <NumericUpDown Grid.Row="16" Grid.Column="2"
+ Classes="ValueLabel ValueLabel_sun"
+ Minimum="1"
+ Maximum="255"
+ Increment="1"
+ Value="{Binding Operation.StartThresholdRange}"/>
+
+ <TextBlock Grid.Row="16" Grid.Column="4"
+ VerticalAlignment="Center"
+ HorizontalAlignment="Right"
+ Text="End threshold:"/>
+
+ <NumericUpDown Grid.Row="16" Grid.Column="6"
+ Classes="ValueLabel ValueLabel_sun"
+ Minimum="1"
+ Maximum="255"
+ Increment="1"
+ Value="{Binding Operation.EndThresholdRange}"/>
+
+ <TextBlock Grid.Row="18" Grid.Column="0"
+ VerticalAlignment="Center"
+ Text="Base type:"/>
+
+ <ComboBox Grid.Row="18" Grid.Column="2" Grid.ColumnSpan="5"
+ HorizontalAlignment="Stretch"
+ Items="{Binding Operation.BaseType, Converter={StaticResource EnumToCollectionConverter}, Mode=OneTime}"
+ SelectedItem="{Binding Operation.BaseType, Converter={StaticResource FromValueDescriptionToEnumConverter}}"/>
+
+ <TextBlock Grid.Row="20" Grid.Column="0"
+ VerticalAlignment="Center"
+ Text="Base thickness:"/>
+
+ <NumericUpDown Grid.Row="20" Grid.Column="2"
+ Classes="ValueLabel ValueLabel_mm"
+ Minimum="0"
+ Maximum="255"
+ Increment="1"
+ FormatString="F2"
+ Value="{Binding Operation.BaseThickness}"/>
+
+ <TextBlock Grid.Row="20" Grid.Column="4"
+ HorizontalAlignment="Right"
+ VerticalAlignment="Center"
+ Text="Base margin:"/>
+
+ <NumericUpDown Grid.Row="20" Grid.Column="6"
+ Classes="ValueLabel ValueLabel_px"
+ Minimum="0"
+ Maximum="65535"
+ Increment="1"
+ Value="{Binding Operation.BaseMargin}"/>
+
+ <TextBlock Grid.Row="22" Grid.Column="0"
+ VerticalAlignment="Center"
+ IsEnabled="{Binding !Operation.OneLayerPerThreshold}"
+ Text="Lithophane height:"/>
+
+ <NumericUpDown Grid.Row="22" Grid.Column="2"
+ Classes="ValueLabel ValueLabel_px"
+ Minimum="0"
+ Maximum="10000"
+ Increment="1"
+ IsEnabled="{Binding !Operation.OneLayerPerThreshold}"
+ Value="{Binding Operation.LithophaneHeight}"/>
+
+ <CheckBox Grid.Row="22" Grid.Column="4" Grid.ColumnSpan="3"
+ VerticalAlignment="Center"
+ IsChecked="{Binding Operation.OneLayerPerThreshold}"
+ Content="One layer per threshold level"/>
+
+ <CheckBox Grid.Row="24" Grid.Column="2"
+ VerticalAlignment="Center"
+ IsChecked="{Binding Operation.EnableAntiAliasing}"
+ Content="Enable Anti-Aliasing"/>
+ </Grid>
+
+ </StackPanel>
+
+ <StackPanel Grid.Column="2" Orientation="Vertical" Spacing="10">
+ <Image Stretch="Uniform"
+ Source="{Binding PreviewImage}"/>
+
+ <TextBlock Text="{Binding PreviewImage.Size, StringFormat=Size: {0}}" HorizontalAlignment="Center"/>
+ </StackPanel>
+ </Grid>
+</UserControl>