feat: Enhance UI with new styles, improved layout, and icon integration across various views

This commit is contained in:
MaddoScientisto 2026-03-12 23:40:41 +01:00
commit 901dc02ca8
6 changed files with 215 additions and 91 deletions

View file

@ -1,8 +1,38 @@
<Application xmlns="https://github.com/avaloniaui" <Application xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="ImageCatalog_2.AvaloniaApp"> x:Class="ImageCatalog_2.AvaloniaApp">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.ThemeDictionaries>
<ResourceDictionary x:Key="Light">
<SolidColorBrush x:Key="AppWindowBackgroundBrush">#F3F5F8</SolidColorBrush>
<SolidColorBrush x:Key="AppSurfaceBackgroundBrush">#FFFFFF</SolidColorBrush>
<SolidColorBrush x:Key="AppControlBackgroundBrush">#F7F8FA</SolidColorBrush>
<SolidColorBrush x:Key="AppControlBackgroundBrushPointerOver">#EEF2F6</SolidColorBrush>
<SolidColorBrush x:Key="AppBorderBrush">#D2D8E0</SolidColorBrush>
</ResourceDictionary>
<ResourceDictionary x:Key="Dark">
<SolidColorBrush x:Key="AppWindowBackgroundBrush">#1B2027</SolidColorBrush>
<SolidColorBrush x:Key="AppSurfaceBackgroundBrush">#242A33</SolidColorBrush>
<SolidColorBrush x:Key="AppControlBackgroundBrush">#2D343F</SolidColorBrush>
<SolidColorBrush x:Key="AppControlBackgroundBrushPointerOver">#38414E</SolidColorBrush>
<SolidColorBrush x:Key="AppBorderBrush">#4B5563</SolidColorBrush>
</ResourceDictionary>
</ResourceDictionary.ThemeDictionaries>
</ResourceDictionary>
</Application.Resources>
<Application.Styles> <Application.Styles>
<FluentTheme /> <FluentTheme DensityStyle="Compact" />
<Style Selector="Window">
<Setter Property="Background" Value="{DynamicResource AppWindowBackgroundBrush}" />
</Style>
<Style Selector="Border">
<Setter Property="Background" Value="{DynamicResource AppSurfaceBackgroundBrush}" />
<Setter Property="BorderBrush" Value="{DynamicResource AppBorderBrush}" />
</Style>
<!-- Compact default styles to reduce padding/margins for a denser UI --> <!-- Compact default styles to reduce padding/margins for a denser UI -->
<Style Selector="TabItem"> <Style Selector="TabItem">
@ -23,31 +53,51 @@
</Style> </Style>
<Style Selector="TextBox"> <Style Selector="TextBox">
<Setter Property="Padding" Value="4" /> <Setter Property="Padding" Value="8,4" />
<Setter Property="Margin" Value="4,0,0,0" /> <Setter Property="Margin" Value="0" />
<Setter Property="MinHeight" Value="30" />
<Setter Property="Background" Value="{DynamicResource AppControlBackgroundBrush}" />
<Setter Property="BorderBrush" Value="{DynamicResource AppBorderBrush}" />
</Style> </Style>
<Style Selector="Button"> <Style Selector="Button">
<Setter Property="Padding" Value="6,4" /> <Setter Property="Padding" Value="10,4" />
<Setter Property="Margin" Value="4,0,0,0" /> <Setter Property="Margin" Value="0" />
<Setter Property="MinHeight" Value="30" />
<Setter Property="Background" Value="{DynamicResource AppControlBackgroundBrush}" />
<Setter Property="BorderBrush" Value="{DynamicResource AppBorderBrush}" />
</Style>
<Style Selector="Button:pointerover">
<Setter Property="Background" Value="{DynamicResource AppControlBackgroundBrushPointerOver}" />
</Style>
<Style Selector="ComboBox">
<Setter Property="MinHeight" Value="30" />
<Setter Property="Background" Value="{DynamicResource AppControlBackgroundBrush}" />
<Setter Property="BorderBrush" Value="{DynamicResource AppBorderBrush}" />
</Style> </Style>
<Style Selector="CheckBox"> <Style Selector="CheckBox">
<Setter Property="Margin" Value="0,2,0,0" /> <Setter Property="Margin" Value="0,1,0,0" />
<Setter Property="Padding" Value="2,0" /> <Setter Property="Padding" Value="2,0" />
</Style> </Style>
<Style Selector="RadioButton"> <Style Selector="RadioButton">
<Setter Property="Margin" Value="0,2,0,0" /> <Setter Property="Margin" Value="0,1,0,0" />
<Setter Property="Padding" Value="2,0" /> <Setter Property="Padding" Value="2,0" />
</Style> </Style>
<Style Selector="TextBlock"> <Style Selector="TextBlock">
<Setter Property="Margin" Value="0,6,0,0" /> <Setter Property="Margin" Value="0,4,0,0" />
</Style> </Style>
<Style Selector="StackPanel"> <Style Selector="StackPanel">
<Setter Property="Spacing" Value="6" /> <Setter Property="Spacing" Value="4" />
</Style>
<Style Selector="ProgressBar">
<Setter Property="MinHeight" Value="16" />
</Style> </Style>
<StyleInclude Source="avares://IconPacks.Avalonia/Icons.axaml" /> <StyleInclude Source="avares://IconPacks.Avalonia/Icons.axaml" />

View file

@ -98,29 +98,29 @@
</TabItem> </TabItem>
</TabControl> </TabControl>
<StackPanel Grid.Column="1"> <Grid Grid.Column="1" RowDefinitions="Auto,*">
<StackPanel HorizontalAlignment="Right" Margin="0,0,0,8"> <StackPanel HorizontalAlignment="Right" Margin="0,0,0,8">
<Button Name="ThemeToggleButton" Width="28" Height="28" Click="ToggleTheme_Click" ToolTip.Tip="Cambia tema" <Button Name="ThemeToggleButton" Width="28" Height="28" Click="ToggleTheme_Click" ToolTip.Tip="Cambia tema"
HorizontalAlignment="Right" Padding="2"> HorizontalAlignment="Right" Padding="2">
<iconPacks:PackIconMaterial Kind="ThemeLightDark" Width="12" Height="12" Foreground="{DynamicResource ForegroundBrush}" /> <iconPacks:PackIconMaterial Kind="ThemeLightDark" Width="14" Height="14" Foreground="{DynamicResource ForegroundBrush}" />
</Button> </Button>
</StackPanel> </StackPanel>
<Border BorderBrush="#DDD" BorderThickness="1" Padding="6" MaxWidth="280"> <Border Grid.Row="1" BorderThickness="1" Padding="10" MaxWidth="280" MinWidth="0">
<StackPanel> <Grid RowDefinitions="Auto,Auto,Auto,Auto,Auto,Auto,Auto,Auto,*" RowSpacing="8" MinWidth="0">
<StackPanel> <StackPanel Grid.Row="0">
<Button Width="120" Margin="0,0,0,8" Command="{Binding LoadSettingsCommand}"> <Button HorizontalAlignment="Stretch" Margin="0,0,0,4" Command="{Binding LoadSettingsCommand}">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center"> <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
<iconPacks:PackIconMaterial Kind="FolderUploadOutline" Width="14" Height="14" Margin="0,0,4,0" Foreground="{DynamicResource ForegroundBrush}" /> <iconPacks:PackIconMaterial Kind="FolderUploadOutline" Width="14" Height="14" Margin="0,0,4,0" Foreground="{DynamicResource ForegroundBrush}" />
<TextBlock Text="Carica" /> <TextBlock Text="Carica" />
</StackPanel> </StackPanel>
</Button> </Button>
<Button Width="120" Margin="0,0,0,8" Command="{Binding SaveSettingsCommand}"> <Button HorizontalAlignment="Stretch" Margin="0,0,0,4" Command="{Binding SaveSettingsCommand}">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center"> <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
<iconPacks:PackIconMaterial Kind="ContentSaveOutline" Width="14" Height="14" Margin="0,0,4,0" Foreground="{DynamicResource ForegroundBrush}" /> <iconPacks:PackIconMaterial Kind="ContentSaveOutline" Width="14" Height="14" Margin="0,0,4,0" Foreground="{DynamicResource ForegroundBrush}" />
<TextBlock Text="Salva" /> <TextBlock Text="Salva" />
</StackPanel> </StackPanel>
</Button> </Button>
<Button Width="120" Height="36" Margin="0,6,0,8" <Button HorizontalAlignment="Stretch" Height="34" Margin="0,4,0,4"
Command="{Binding ProcessImagesCommand}" Command="{Binding ProcessImagesCommand}"
IsEnabled="{Binding UiEnabled}"> IsEnabled="{Binding UiEnabled}">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center"> <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
@ -128,7 +128,7 @@
<TextBlock Text="Avvia" /> <TextBlock Text="Avvia" />
</StackPanel> </StackPanel>
</Button> </Button>
<Button Width="120" Height="36" <Button HorizontalAlignment="Stretch" Height="34"
Command="{Binding AsyncCancelOperationCommand}"> Command="{Binding AsyncCancelOperationCommand}">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center"> <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
<iconPacks:PackIconMaterial Kind="StopCircleOutline" Width="14" Height="14" Margin="0,0,4,0" Foreground="Red" /> <iconPacks:PackIconMaterial Kind="StopCircleOutline" Width="14" Height="14" Margin="0,0,4,0" Foreground="Red" />
@ -137,27 +137,29 @@
</Button> </Button>
</StackPanel> </StackPanel>
<Separator Margin="0,8,0,8" /> <Separator Grid.Row="1" Margin="0,4,0,0" />
<TextBlock Text="Stato" FontWeight="Bold" /> <TextBlock Grid.Row="2" Text="Stato" FontWeight="Bold" />
<TextBlock Text="{Binding ProcessingStatus}" TextWrapping="Wrap" /> <TextBlock Grid.Row="3" Text="{Binding ProcessingStatus}" TextWrapping="Wrap" />
<TextBlock Text="Progresso" FontWeight="Bold" Margin="0,8,0,0" /> <TextBlock Grid.Row="4" Text="Progresso" FontWeight="Bold" Margin="0,4,0,0" />
<ProgressBar Minimum="0" Maximum="{Binding ProgressBarMaximum}" <ProgressBar Grid.Row="5" Minimum="0" Maximum="{Binding ProgressBarMaximum}"
Value="{Binding ProgressBarValue}" Height="20" /> Value="{Binding ProgressBarValue}" Height="18" HorizontalAlignment="Stretch" MinWidth="0" />
<TextBlock Margin="0,6,0,0"> <TextBlock Grid.Row="6" Margin="0,2,0,0">
<Run Text="{Binding ProcessedImagesCount}" /> <Run Text="{Binding ProcessedImagesCount}" />
<Run Text=" / " /> <Run Text=" / " />
<Run Text="{Binding TotalImagesCount}" /> <Run Text="{Binding TotalImagesCount}" />
</TextBlock> </TextBlock>
<TextBlock Text="Velocita" FontWeight="Bold" Margin="0,8,0,0" /> <TextBlock Grid.Row="7" Text="Velocita" FontWeight="Bold" Margin="0,4,0,0" />
<TextBlock Text="{Binding SpeedCounter}" TextWrapping="Wrap" /> <StackPanel Grid.Row="8" VerticalAlignment="Top">
<TextBlock Text="{Binding SpeedCounter}" TextWrapping="Wrap" />
<TextBlock Text="{Binding AppVersion}" Margin="0,8,0,0" Opacity="0.6" /> <TextBlock Text="{Binding AppVersion}" Margin="0,8,0,0" Opacity="0.6" />
</StackPanel> </StackPanel>
</Grid>
</Border> </Border>
</StackPanel> </Grid>
</Grid> </Grid>
</Grid> </Grid>
</Window> </Window>

View file

@ -155,12 +155,6 @@ public partial class AvaloniaMainWindow : Window
private void UpdateThemeToggleButtonContent() private void UpdateThemeToggleButtonContent()
{ {
var toggleButton = this.FindControl<Avalonia.Controls.Button>("ThemeToggleButton"); _ = this.FindControl<Avalonia.Controls.Button>("ThemeToggleButton");
if (toggleButton is null)
{
return;
}
toggleButton.Content = _isDarkTheme ? "☀" : "🌙";
} }
} }

View file

@ -1,6 +1,7 @@
<UserControl xmlns="https://github.com/avaloniaui" <UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:avaloniaDataGrid="clr-namespace:Avalonia.Controls;assembly=Avalonia.Controls.DataGrid" xmlns:avaloniaDataGrid="clr-namespace:Avalonia.Controls;assembly=Avalonia.Controls.DataGrid"
xmlns:iconPacks="https://github.com/MahApps/IconPacks.Avalonia"
x:Class="ImageCatalog_2.AvaloniaViews.AiTabView"> x:Class="ImageCatalog_2.AvaloniaViews.AiTabView">
<Grid> <Grid>
<Grid.RowDefinitions> <Grid.RowDefinitions>
@ -17,10 +18,20 @@
<Grid Margin="0,4,0,0" ColumnDefinitions="Auto,*,Auto,Auto"> <Grid Margin="0,4,0,0" ColumnDefinitions="Auto,*,Auto,Auto">
<TextBlock Text="Cartella modelli:" VerticalAlignment="Center" Margin="0,0,8,0" Grid.Column="0" /> <TextBlock Text="Cartella modelli:" VerticalAlignment="Center" Margin="0,0,8,0" Grid.Column="0" />
<TextBox Text="{Binding ModelsFolderPath, Mode=TwoWay}" Grid.Column="1" VerticalAlignment="Center" /> <TextBox Text="{Binding ModelsFolderPath, Mode=TwoWay}" Grid.Column="1" VerticalAlignment="Center" />
<Button Width="88" Margin="6,0,0,0" Command="{Binding SelectModelsFolderCommand}" <Button Width="104" Margin="6,0,0,0" Command="{Binding SelectModelsFolderCommand}"
Grid.Column="2" Content="Scegli..." /> Grid.Column="2">
<Button Width="56" Margin="6,0,0,0" Grid.Column="3" <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Spacing="6">
Click="OpenModelsFolder_Click" Content="Apri" /> <iconPacks:PackIconMaterial Kind="FolderOpenOutline" Width="14" Height="14" />
<TextBlock Text="Scegli..." />
</StackPanel>
</Button>
<Button Width="72" Margin="6,0,0,0" Grid.Column="3"
Click="OpenModelsFolder_Click">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Spacing="6">
<iconPacks:PackIconMaterial Kind="Folder" Width="14" Height="14" />
<TextBlock Text="Apri" />
</StackPanel>
</Button>
</Grid> </Grid>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left" Margin="0,8,0,0" Spacing="8"> <StackPanel Orientation="Horizontal" HorizontalAlignment="Left" Margin="0,8,0,0" Spacing="8">
@ -32,10 +43,20 @@
<Grid Margin="0,4,0,0" ColumnDefinitions="Auto,*,Auto,Auto"> <Grid Margin="0,4,0,0" ColumnDefinitions="Auto,*,Auto,Auto">
<TextBlock Text="Percorso CSV:" VerticalAlignment="Center" Margin="0,0,8,0" Grid.Column="0" /> <TextBlock Text="Percorso CSV:" VerticalAlignment="Center" Margin="0,0,8,0" Grid.Column="0" />
<TextBox Text="{Binding CsvOutputPath, Mode=TwoWay}" Grid.Column="1" VerticalAlignment="Center" /> <TextBox Text="{Binding CsvOutputPath, Mode=TwoWay}" Grid.Column="1" VerticalAlignment="Center" />
<Button Width="88" Margin="6,0,0,0" Command="{Binding SelectCsvOutputCommand}" <Button Width="104" Margin="6,0,0,0" Command="{Binding SelectCsvOutputCommand}"
Grid.Column="2" Content="Scegli..." /> Grid.Column="2">
<Button Width="56" Margin="6,0,0,0" Grid.Column="3" <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Spacing="6">
Click="OpenCsvOutputFolder_Click" Content="Apri" /> <iconPacks:PackIconMaterial Kind="FileOutline" Width="14" Height="14" />
<TextBlock Text="Scegli..." />
</StackPanel>
</Button>
<Button Width="72" Margin="6,0,0,0" Grid.Column="3"
Click="OpenCsvOutputFolder_Click">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Spacing="6">
<iconPacks:PackIconMaterial Kind="Folder" Width="14" Height="14" />
<TextBlock Text="Apri" />
</StackPanel>
</Button>
</Grid> </Grid>
<TextBlock Text="Anteprima risultati" FontWeight="Bold" Margin="0,8,0,0" /> <TextBlock Text="Anteprima risultati" FontWeight="Bold" Margin="0,8,0,0" />

View file

@ -1,5 +1,6 @@
<UserControl xmlns="https://github.com/avaloniaui" <UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:iconPacks="https://github.com/MahApps/IconPacks.Avalonia"
x:Class="ImageCatalog_2.AvaloniaViews.FaceAiTabView"> x:Class="ImageCatalog_2.AvaloniaViews.FaceAiTabView">
<ScrollViewer> <ScrollViewer>
<StackPanel Margin="4" Spacing="6"> <StackPanel Margin="4" Spacing="6">
@ -11,22 +12,47 @@
<Grid ColumnDefinitions="Auto,*,Auto,Auto" ColumnSpacing="6"> <Grid ColumnDefinitions="Auto,*,Auto,Auto" ColumnSpacing="6">
<TextBlock Grid.Column="0" Text="face_encoder:" VerticalAlignment="Center" /> <TextBlock Grid.Column="0" Text="face_encoder:" VerticalAlignment="Center" />
<TextBox Grid.Column="1" Name="FaceExecutablePathTextBox" Text="{Binding FaceExecutablePath, Mode=TwoWay}" Watermark="C:\\tools\\face_encoder.exe" /> <TextBox Grid.Column="1" Name="FaceExecutablePathTextBox" Text="{Binding FaceExecutablePath, Mode=TwoWay}" Watermark="C:\\tools\\face_encoder.exe" />
<Button Grid.Column="2" Name="FaceSelectExecutableButton" Content="Scegli..." Click="SelectFaceExecutable_Click" Width="88" Margin="6,0,0,0" /> <Button Grid.Column="2" Name="FaceSelectExecutableButton" Click="SelectFaceExecutable_Click" Width="104" Margin="6,0,0,0">
<Button Grid.Column="3" Name="FaceOpenExecutableButton" Content="Apri" Click="OpenFaceExecutableFolder_Click" Width="56" Margin="6,0,0,0" /> <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Spacing="6">
<iconPacks:PackIconMaterial Kind="FileOutline" Width="14" Height="14" />
<TextBlock Text="Scegli..." />
</StackPanel>
</Button>
<Button Grid.Column="3" Name="FaceOpenExecutableButton" Click="OpenFaceExecutableFolder_Click" Width="72" Margin="6,0,0,0">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Spacing="6">
<iconPacks:PackIconMaterial Kind="Folder" Width="14" Height="14" />
<TextBlock Text="Apri" />
</StackPanel>
</Button>
</Grid> </Grid>
<Grid ColumnDefinitions="Auto,*,Auto,Auto" ColumnSpacing="6"> <Grid ColumnDefinitions="Auto,*,Auto,Auto" ColumnSpacing="6">
<TextBlock Grid.Column="0" Text="Sorgente:" VerticalAlignment="Center" /> <TextBlock Grid.Column="0" Text="Sorgente:" VerticalAlignment="Center" />
<TextBox Grid.Column="1" Name="FaceDestinationPathTextBox" Text="{Binding DestinationPath, Mode=OneWay}" IsReadOnly="True" /> <TextBox Grid.Column="1" Name="FaceDestinationPathTextBox" Text="{Binding DestinationPath, Mode=OneWay}" IsReadOnly="True" />
<Button Grid.Column="3" Name="FaceOpenDestinationButton" Content="Apri" Click="OpenFaceDestinationFolder_Click" Width="56" Margin="6,0,0,0" /> <Button Grid.Column="3" Name="FaceOpenDestinationButton" Click="OpenFaceDestinationFolder_Click" Width="72" Margin="6,0,0,0">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Spacing="6">
<iconPacks:PackIconMaterial Kind="Folder" Width="14" Height="14" />
<TextBlock Text="Apri" />
</StackPanel>
</Button>
</Grid> </Grid>
<TextBlock Text="Output encodings" FontWeight="Bold" Margin="0,4,0,0" /> <TextBlock Text="Output encodings" FontWeight="Bold" Margin="0,4,0,0" />
<Grid ColumnDefinitions="Auto,*,Auto,Auto" ColumnSpacing="6"> <Grid ColumnDefinitions="Auto,*,Auto,Auto" ColumnSpacing="6">
<TextBlock Grid.Column="0" Text="File out (.pkl):" VerticalAlignment="Center" /> <TextBlock Grid.Column="0" Text="File out (.pkl):" VerticalAlignment="Center" />
<TextBox Grid.Column="1" Name="FaceOutputFolderTextBox" Text="{Binding FaceOutputFolderPath, Mode=TwoWay}" Watermark="C:\\output\\encodings.pkl" /> <TextBox Grid.Column="1" Name="FaceOutputFolderTextBox" Text="{Binding FaceOutputFolderPath, Mode=TwoWay}" Watermark="C:\\output\\encodings.pkl" />
<Button Grid.Column="2" Name="FaceSelectOutputButton" Content="Scegli..." Click="SelectFaceOutputFile_Click" Width="88" Margin="6,0,0,0" /> <Button Grid.Column="2" Name="FaceSelectOutputButton" Click="SelectFaceOutputFile_Click" Width="104" Margin="6,0,0,0">
<Button Grid.Column="3" Name="FaceOpenOutputButton" Content="Apri" Click="OpenFaceOutputFolder_Click" Width="56" Margin="6,0,0,0" /> <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Spacing="6">
<iconPacks:PackIconMaterial Kind="FileOutline" Width="14" Height="14" />
<TextBlock Text="Scegli..." />
</StackPanel>
</Button>
<Button Grid.Column="3" Name="FaceOpenOutputButton" Click="OpenFaceOutputFolder_Click" Width="72" Margin="6,0,0,0">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Spacing="6">
<iconPacks:PackIconMaterial Kind="Folder" Width="14" Height="14" />
<TextBlock Text="Apri" />
</StackPanel>
</Button>
</Grid> </Grid>
<StackPanel Orientation="Horizontal" Spacing="6" Margin="0,6,0,0"> <StackPanel Orientation="Horizontal" Spacing="6" Margin="0,6,0,0">

View file

@ -1,61 +1,92 @@
<UserControl xmlns="https://github.com/avaloniaui" <UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:iconPacks="https://github.com/MahApps/IconPacks.Avalonia"
x:Class="ImageCatalog_2.AvaloniaViews.GeneralTabView"> x:Class="ImageCatalog_2.AvaloniaViews.GeneralTabView">
<ScrollViewer> <ScrollViewer>
<StackPanel Margin="4"> <StackPanel Margin="4" Spacing="8">
<TextBlock Text="Percorsi" FontWeight="Bold" /> <TextBlock Text="Percorsi" FontWeight="Bold" />
<StackPanel Margin="0,4,0,0"> <StackPanel Margin="0,2,0,0" Spacing="6">
<Grid Margin="0,0,0,4" ColumnDefinitions="Auto,*,Auto,Auto"> <Grid Margin="0,0,0,2" ColumnDefinitions="Auto,*,Auto,Auto" ColumnSpacing="6">
<TextBlock Text="Sorgente:" VerticalAlignment="Center" Margin="0,0,8,0" Grid.Column="0" /> <TextBlock Text="Sorgente:" VerticalAlignment="Center" Margin="0,0,8,0" Grid.Column="0" />
<TextBox Text="{Binding SourcePath, Mode=TwoWay}" Grid.Column="1" VerticalAlignment="Center" /> <TextBox Text="{Binding SourcePath, Mode=TwoWay}" Grid.Column="1" VerticalAlignment="Center" />
<Button Width="88" Margin="6,0,0,0" Command="{Binding SelectSourceFolderCommand}" Grid.Column="2" Content="Scegli..." /> <Button Width="104" Command="{Binding SelectSourceFolderCommand}" Grid.Column="2">
<Button Width="56" Margin="6,0,0,0" Grid.Column="3" Click="OpenSourceFolder_Click" Content="Apri" /> <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Spacing="6">
<iconPacks:PackIconMaterial Kind="FolderOpenOutline" Width="14" Height="14" />
<TextBlock Text="Scegli..." />
</StackPanel>
</Button>
<Button Width="72" Grid.Column="3" Click="OpenSourceFolder_Click">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Spacing="6">
<iconPacks:PackIconMaterial Kind="Folder" Width="14" Height="14" />
<TextBlock Text="Apri" />
</StackPanel>
</Button>
</Grid> </Grid>
<Grid ColumnDefinitions="Auto,*,Auto,Auto"> <Grid ColumnDefinitions="Auto,*,Auto,Auto" ColumnSpacing="6">
<TextBlock Text="Destinazione:" VerticalAlignment="Center" Margin="0,0,8,0" Grid.Column="0" /> <TextBlock Text="Destinazione:" VerticalAlignment="Center" Margin="0,0,8,0" Grid.Column="0" />
<TextBox Text="{Binding DestinationPath, Mode=TwoWay}" Grid.Column="1" VerticalAlignment="Center" /> <TextBox Text="{Binding DestinationPath, Mode=TwoWay}" Grid.Column="1" VerticalAlignment="Center" />
<Button Width="88" Margin="6,0,0,0" Command="{Binding SelectDestinationFolderCommand}" Grid.Column="2" Content="Scegli..." /> <Button Width="104" Command="{Binding SelectDestinationFolderCommand}" Grid.Column="2">
<Button Width="56" Margin="6,0,0,0" Grid.Column="3" Click="OpenDestinationFolder_Click" Content="Apri" /> <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Spacing="6">
<iconPacks:PackIconMaterial Kind="FolderOpenOutline" Width="14" Height="14" />
<TextBlock Text="Scegli..." />
</StackPanel>
</Button>
<Button Width="72" Grid.Column="3" Click="OpenDestinationFolder_Click">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Spacing="6">
<iconPacks:PackIconMaterial Kind="Folder" Width="14" Height="14" />
<TextBlock Text="Apri" />
</StackPanel>
</Button>
</Grid> </Grid>
</StackPanel> </StackPanel>
<TextBlock Text="Opzioni" FontWeight="Bold" Margin="0,8,0,0" /> <Grid ColumnDefinitions="*,*" ColumnSpacing="24" Margin="0,4,0,0">
<StackPanel Margin="0,4,0,0"> <StackPanel Grid.Column="0" Spacing="8">
<CheckBox Content="Forza JPEG" IsChecked="{Binding ForceJpeg}" /> <TextBlock Text="Opzioni" FontWeight="Bold" />
<CheckBox Content="Aggiorna sottodirectory" IsChecked="{Binding UpdateSubdirectories}" /> <StackPanel Margin="0,2,0,0" Spacing="3">
<CheckBox Content="Crea sottocartelle" IsChecked="{Binding CreateSubfolders}" /> <CheckBox Content="Forza JPEG" IsChecked="{Binding ForceJpeg}" />
<CheckBox Content="Sovrascrivi immagini" IsChecked="{Binding OverwriteImages}" /> <CheckBox Content="Aggiorna sottodirectory" IsChecked="{Binding UpdateSubdirectories}" />
</StackPanel> <CheckBox Content="Crea sottocartelle" IsChecked="{Binding CreateSubfolders}" />
<CheckBox Content="Sovrascrivi immagini" IsChecked="{Binding OverwriteImages}" />
</StackPanel>
<TextBlock Text="Elaborazione" FontWeight="Bold" Margin="0,8,0,0" /> <TextBlock Text="Elaborazione" FontWeight="Bold" />
<StackPanel Orientation="Horizontal" Margin="0,4,0,0"> <Grid ColumnDefinitions="Auto,74,Auto,74" ColumnSpacing="8" RowDefinitions="Auto">
<TextBlock Text="Threads:" VerticalAlignment="Center" /> <TextBlock Text="Threads:" VerticalAlignment="Center" Grid.Column="0" />
<TextBox Text="{Binding ThreadsCount, Mode=TwoWay}" Width="60" Margin="8,0,0,0" /> <TextBox Text="{Binding ThreadsCount, Mode=TwoWay}" Width="74" Grid.Column="1" />
<TextBlock Text="Chunk:" VerticalAlignment="Center" Margin="12,0,0,0" /> <TextBlock Text="Chunk:" VerticalAlignment="Center" Grid.Column="2" />
<TextBox Text="{Binding ChunkSize, Mode=TwoWay}" Width="60" Margin="6,0,0,0" /> <TextBox Text="{Binding ChunkSize, Mode=TwoWay}" Width="74" Grid.Column="3" />
</StackPanel> </Grid>
<TextBlock Text="Divisione cartelle" FontWeight="Bold" Margin="0,8,0,0" /> <TextBlock Text="Libreria Immagini" FontWeight="Bold" />
<StackPanel Orientation="Horizontal" Margin="0,4,0,0"> <StackPanel Margin="0,2,0,0" Spacing="3">
<TextBlock Text="File per cartella:" VerticalAlignment="Center" /> <RadioButton Content="System.Graphics" IsChecked="{Binding UseSystemGraphics}" GroupName="Lib" IsVisible="{Binding IsRunningOnWindows}" />
<TextBox Text="{Binding FilesPerFolder}" Width="60" Margin="8,0,0,0" /> <RadioButton Content="ImageSharp" IsChecked="{Binding UseImageSharp}" GroupName="Lib" />
<TextBlock Text="Suffisso:" VerticalAlignment="Center" Margin="12,0,0,0" /> </StackPanel>
<TextBox Text="{Binding FolderSuffix}" Width="120" Margin="8,0,0,0" /> </StackPanel>
</StackPanel>
<TextBlock Text="Numerazione" FontWeight="Bold" Margin="0,8,0,0" /> <StackPanel Grid.Column="1" Spacing="8">
<StackPanel Orientation="Horizontal" Margin="0,4,0,0"> <TextBlock Text="Divisione cartelle" FontWeight="Bold" />
<RadioButton Content="Progressiva" IsChecked="{Binding UseProgressiveNumbering}" GroupName="Num" /> <Grid ColumnDefinitions="Auto,78,Auto,*" ColumnSpacing="8" RowDefinitions="Auto">
<RadioButton Content="Per file" IsChecked="{Binding UseFileNumbering}" GroupName="Num" Margin="8,0,0,0" /> <TextBlock Text="File per cartella:" VerticalAlignment="Center" Grid.Column="0" />
<TextBlock Text="Cifre:" VerticalAlignment="Center" Margin="12,0,0,0" /> <TextBox Text="{Binding FilesPerFolder}" Width="78" Grid.Column="1" />
<TextBox Text="{Binding CounterDigits}" Width="40" Margin="8,0,0,0" /> <TextBlock Text="Suffisso:" VerticalAlignment="Center" Grid.Column="2" />
</StackPanel> <TextBox Text="{Binding FolderSuffix}" MinWidth="120" Grid.Column="3" />
</Grid>
<TextBlock Text="Libreria Immagini" FontWeight="Bold" Margin="0,8,0,0" /> <TextBlock Text="Numerazione" FontWeight="Bold" />
<StackPanel Orientation="Horizontal" Margin="0,4,0,0"> <StackPanel Margin="0,2,0,0" Spacing="6">
<RadioButton Content="System.Graphics" IsChecked="{Binding UseSystemGraphics}" GroupName="Lib" IsVisible="{Binding IsRunningOnWindows}" /> <StackPanel Orientation="Horizontal" Spacing="12">
<RadioButton Content="ImageSharp" IsChecked="{Binding UseImageSharp}" GroupName="Lib" Margin="8,0,0,0" /> <RadioButton Content="Progressiva" IsChecked="{Binding UseProgressiveNumbering}" GroupName="Num" />
</StackPanel> <RadioButton Content="Per file" IsChecked="{Binding UseFileNumbering}" GroupName="Num" />
</StackPanel>
<Grid ColumnDefinitions="Auto,64,*" ColumnSpacing="8">
<TextBlock Text="Cifre:" VerticalAlignment="Center" Grid.Column="0" />
<TextBox Text="{Binding CounterDigits}" Width="64" Grid.Column="1" />
</Grid>
</StackPanel>
</StackPanel>
</Grid>
</StackPanel> </StackPanel>
</ScrollViewer> </ScrollViewer>
</UserControl> </UserControl>