Pārlūkot izejas kodu

Updates to Light theme across all controls. Styling updates.

Simplified Link/Unlink image definitions in ButtonControls.
Ruben 4 mēneši atpakaļ
vecāks
revīzija
0a0bc5043f
42 mainītis faili ar 738 papildinājumiem un 648 dzēšanām
  1. 1 2
      src/PicView.Avalonia.Win32/App.axaml.cs
  2. 2 1
      src/PicView.Avalonia.Win32/Views/BatchResizeResizeWindow.axaml
  3. 14 0
      src/PicView.Avalonia.Win32/Views/BatchResizeResizeWindow.axaml.cs
  4. 12 0
      src/PicView.Avalonia.Win32/Views/ImageInfoWindow.axaml.cs
  5. 6 11
      src/PicView.Avalonia.Win32/Views/KeybindingsWindow.axaml
  6. 4 1
      src/PicView.Avalonia.Win32/Views/KeybindingsWindow.axaml.cs
  7. 0 1
      src/PicView.Avalonia.Win32/Views/SettingsWindow.axaml.cs
  8. 2 2
      src/PicView.Avalonia.Win32/Views/SingleImageResizeWindow.axaml
  9. 9 3
      src/PicView.Avalonia/PicViewTheme/Classes.axaml
  10. 25 0
      src/PicView.Avalonia/PicViewTheme/Controls/Button.axaml
  11. 5 0
      src/PicView.Avalonia/PicViewTheme/Controls/ComboBoxItem.axaml
  12. 5 0
      src/PicView.Avalonia/PicViewTheme/Controls/Menu.axaml
  13. 1 13
      src/PicView.Avalonia/PicViewTheme/Controls/SplitButton.axaml
  14. 2 1
      src/PicView.Avalonia/PicViewTheme/Controls/TextBox.axaml
  15. 3 0
      src/PicView.Avalonia/PicViewTheme/Icons.axaml
  16. 3 3
      src/PicView.Avalonia/PicViewTheme/ResourceDictionaries/MainColors.axaml
  17. 25 24
      src/PicView.Avalonia/UI/UIHelper.cs
  18. 2 6
      src/PicView.Avalonia/ViewModels/MainViewModel.cs
  19. 7 3
      src/PicView.Avalonia/Views/Config/AppearanceView.axaml
  20. 6 0
      src/PicView.Avalonia/Views/Config/FileAssociationsView.axaml
  21. 7 3
      src/PicView.Avalonia/Views/Config/FileAssociationsView.axaml.cs
  22. 81 30
      src/PicView.Avalonia/Views/Config/GallerySettingsView.axaml
  23. 3 2
      src/PicView.Avalonia/Views/Config/GeneralSettingsView.axaml
  24. 7 2
      src/PicView.Avalonia/Views/Config/ImageSettingsView.axaml
  25. 2 0
      src/PicView.Avalonia/Views/Config/LanguageView.axaml
  26. 13 7
      src/PicView.Avalonia/Views/Config/MouseView.axaml
  27. 5 0
      src/PicView.Avalonia/Views/Config/NavigationView.axaml
  28. 2 0
      src/PicView.Avalonia/Views/Config/SlideshowSettingsView.axaml
  29. 1 0
      src/PicView.Avalonia/Views/Config/WindowSettingsView.axaml
  30. 4 2
      src/PicView.Avalonia/Views/Config/ZoomSettingsView.axaml
  31. 82 18
      src/PicView.Avalonia/Views/Main/BatchResizeView.axaml
  32. 19 7
      src/PicView.Avalonia/Views/Main/BatchResizeView.axaml.cs
  33. 23 12
      src/PicView.Avalonia/Views/Main/EffectsView.axaml
  34. 17 0
      src/PicView.Avalonia/Views/Main/EffectsView.axaml.cs
  35. 117 342
      src/PicView.Avalonia/Views/Main/ImageInfoView.axaml
  36. 2 1
      src/PicView.Avalonia/Views/Main/KeybindingsView.axaml
  37. 0 1
      src/PicView.Avalonia/Views/Main/MainView.axaml
  38. 134 132
      src/PicView.Avalonia/Views/Main/SingleImageResizeView.axaml
  39. 57 5
      src/PicView.Avalonia/Views/Main/SingleImageResizeView.axaml.cs
  40. 24 8
      src/PicView.Avalonia/Views/UC/CropControl.axaml.cs
  41. 2 2
      src/PicView.Avalonia/Views/UC/Menus/ToolsMenu.axaml
  42. 2 3
      src/PicView.Core/ViewModels/ImageInfoWindowViewModel.cs

+ 1 - 2
src/PicView.Avalonia.Win32/App.axaml.cs

@@ -11,7 +11,6 @@ using PicView.Avalonia.StartUp;
 using PicView.Avalonia.ViewModels;
 using PicView.Avalonia.Win32.Views;
 using PicView.Avalonia.Win32.WindowImpl;
-using PicView.Core.Config;
 using PicView.Core.FileAssociations;
 using PicView.Core.FileSorting;
 using PicView.Core.Localization;
@@ -68,7 +67,7 @@ public class App : Application, IPlatformSpecificService, IPlatformWindowService
             await Dispatcher.UIThread.InvokeAsync(() =>
             {
                 ThemeManager.DetermineTheme(Current, settingsExists);
-
+                
                 _mainWindow = new WinMainWindow();
                 desktop.MainWindow = _mainWindow;
             }, DispatcherPriority.Send);

+ 2 - 1
src/PicView.Avalonia.Win32/Views/BatchResizeResizeWindow.axaml

@@ -89,7 +89,8 @@
                 Background="{DynamicResource NoisyTexture}"
                 Focusable="True"
                 Margin="0"
-                Padding="10,2,5,10" />
+                Padding="10,2,5,10"
+                x:Name="ResizeView" />
         </StackPanel>
     </Border>
 </Window>

+ 14 - 0
src/PicView.Avalonia.Win32/Views/BatchResizeResizeWindow.axaml.cs

@@ -47,6 +47,20 @@ public partial class BatchResizeWindow : Window, IDisposable
             MinimizeButton.Foreground = new SolidColorBrush(color);
             CloseButton.Foreground = new SolidColorBrush(color);
         }
+        else if (!Settings.Theme.Dark)
+        {
+            if (!Application.Current.TryGetResource("MenuBackgroundColor",
+                    Application.Current.RequestedThemeVariant, out var menuBackgroundColor))
+            {
+                return;
+            }
+            
+            if (menuBackgroundColor is not Color color)
+            {
+                return;
+            }
+            ResizeView.Background = new SolidColorBrush(color);
+        }
 
         GenericWindowHelper.GenericWindowInitialize(this, TranslationManager.Translation.BatchResize + " - PicView");
         Loaded += delegate

+ 12 - 0
src/PicView.Avalonia.Win32/Views/ImageInfoWindow.axaml.cs

@@ -3,6 +3,8 @@ using Avalonia.Controls;
 using Avalonia.Input;
 using Avalonia.Interactivity;
 using Avalonia.Media;
+using Avalonia.VisualTree;
+using PicView.Avalonia.CustomControls;
 using PicView.Avalonia.UI;
 using PicView.Core.Config;
 using PicView.Core.Localization;
@@ -87,6 +89,16 @@ public partial class ImageInfoWindow : Window, IDisposable
             RemoveRatingButton.Classes.Remove("noBorderHover");
             RemoveRatingButton.Classes.Add("hover");
         }
+        if (!Settings.Theme.Dark)
+        {
+
+            ExifView.Background = UIHelper.GetMenuBackgroundColor();
+            var copyButtons =  ExifView.GetVisualChildren().OfType<CopyButton>();
+            foreach (var btn in copyButtons)
+            {
+                btn.Classes.Add("hover");
+            }
+        }
         GenericWindowHelper.GenericWindowInitialize(this, TranslationManager.Translation.ImageInfo + " - PicView");
         Loaded += delegate
         {

+ 6 - 11
src/PicView.Avalonia.Win32/Views/KeybindingsWindow.axaml

@@ -7,7 +7,6 @@
     xmlns:customControls="clr-namespace:PicView.Avalonia.CustomControls;assembly=PicView.Avalonia"
     xmlns:main="clr-namespace:PicView.Avalonia.Views.Main;assembly=PicView.Avalonia"
     xmlns:viewModels="clr-namespace:PicView.Avalonia.ViewModels;assembly=PicView.Avalonia"
-    xmlns:views="clr-namespace:PicView.Avalonia.Views;assembly=PicView.Avalonia"
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
 
     <Border
@@ -79,20 +78,16 @@
                     x:Name="TitleText" />
             </DockPanel>
 
-            <Rectangle
-                Fill="{DynamicResource WindowBorderColor}"
-                Height="1"
-                Margin="0,28,0,0"
-                VerticalAlignment="Top"
-                x:Name="BorderRectangle" />
-
             <customControls:AutoScrollViewer
-                Background="{DynamicResource NoisyTexture}"
+                Background="Transparent"
                 Focusable="True"
                 Margin="0,28,0,0"
-                Padding="5,2,5,10"
                 Theme="{StaticResource Main}">
-                <main:KeybindingsView Background="Transparent" PointerPressed="MoveWindow" />
+                <main:KeybindingsView
+                    Background="{DynamicResource NoisyTexture}"
+                    Padding="5,2,5,10"
+                    PointerPressed="MoveWindow"
+                    x:Name="KeybindingsView" />
             </customControls:AutoScrollViewer>
         </Panel>
     </Border>

+ 4 - 1
src/PicView.Avalonia.Win32/Views/KeybindingsWindow.axaml.cs

@@ -21,7 +21,6 @@ public partial class KeybindingsWindow : Window
             CloseButton.BorderThickness = new Thickness(0);
             MinimizeButton.Background = Brushes.Transparent;
             MinimizeButton.BorderThickness = new Thickness(0);
-            BorderRectangle.Height = 0;
             TitleText.Background = Brushes.Transparent;
             
             if (!Application.Current.TryGetResource("SecondaryTextColor",
@@ -39,6 +38,10 @@ public partial class KeybindingsWindow : Window
             MinimizeButton.Foreground = new SolidColorBrush(color);
             CloseButton.Foreground = new SolidColorBrush(color);
         }
+        else if (!Settings.Theme.Dark)
+        {
+            KeybindingsView.Background = UIHelper.GetMenuBackgroundColor();
+        }
         GenericWindowHelper.KeybindingsWindowInitialize(this);
     }
 

+ 0 - 1
src/PicView.Avalonia.Win32/Views/SettingsWindow.axaml.cs

@@ -94,7 +94,6 @@ public partial class SettingsWindow : Window
         }
         else if (!Settings.Theme.Dark)
         {
-            ParentBorder.Background = new SolidColorBrush(Color.FromArgb(114, 132, 132, 132));
             SettingsButton.Background = Brushes.White;
             if (!Application.Current.TryGetResource("MainBorderColor",
                     Application.Current.RequestedThemeVariant, out var mbColor))

+ 2 - 2
src/PicView.Avalonia.Win32/Views/SingleImageResizeWindow.axaml

@@ -59,7 +59,7 @@
                     Click="Minimize"
                     Data="{StaticResource MinimizeGeometry}"
                     DockPanel.Dock="Right"
-                    Foreground="{DynamicResource MainTextColor}"
+                    Foreground="{StaticResource MainTextColor}"
                     IconHeight="12"
                     IconWidth="12"
                     IsRepeatEnabled="False"
@@ -84,7 +84,7 @@
                 Height="1"
                 x:Name="BorderRectangle" />
 
-            <main:SingleImageResizeView Background="{DynamicResource NoisyTexture}" />
+            <main:SingleImageResizeView Background="{DynamicResource NoisyTexture}" x:Name="ResizeView" />
         </StackPanel>
     </Border>
 </Window>

+ 9 - 3
src/PicView.Avalonia/PicViewTheme/Classes.axaml

@@ -5,7 +5,7 @@
 
     <Style Selector="TextBlock.txt">
         <Setter Property="FontSize" Value="12" />
-        <Setter Property="Foreground" Value="{StaticResource SecondaryTextColor}" />
+        <Setter Property="Foreground" Value="{DynamicResource MainTextColor}" />
         <Setter Property="VerticalAlignment" Value="Center" />
         <Setter Property="FontFamily" Value="/Assets/Fonts/Roboto-Medium.ttf#Roboto" />
         <Setter Property="TextTrimming" Value="CharacterEllipsis" />
@@ -26,6 +26,12 @@
         </Style>
     </Style>
 
+    <Style Selector="TextBlock.lightHover">
+        <Style Selector="^:pointerover">
+            <Setter Property="Foreground" Value="{StaticResource SecondaryTextColor}" />
+        </Style>
+    </Style>
+
     <Style Selector="Button.hover, customControls|CopyButton:hover">
         <Style Selector="^:pointerover">
             <Setter Property="Background" Value="{DynamicResource AccentColor}" />
@@ -61,7 +67,7 @@
 
     <Style Selector="TextBox.TStyle">
         <Setter Property="FontSize" Value="12" />
-        <Setter Property="Foreground" Value="{DynamicResource SecondaryTextColor}" />
+        <Setter Property="Foreground" Value="{DynamicResource MainTextColor}" />
         <Setter Property="FontFamily" Value="/Assets/Fonts/Roboto-Medium.ttf#Roboto" />
         <Setter Property="Background" Value="{DynamicResource SecondaryBackgroundColor}" />
         <Setter Property="BorderBrush" Value="{DynamicResource MainBorderColor}" />
@@ -70,7 +76,7 @@
         <Setter Property="Margin" Value="5,0,0,0" />
         <Setter Property="Padding" Value="5,7,1,7" />
         <Setter Property="MinWidth" Value="180" />
-        <Setter Property="CaretBrush" Value="{StaticResource SecondaryTextColor}" />
+        <Setter Property="CaretBrush" Value="{DynamicResource MainTextColor}" />
         <Setter Property="SelectionForegroundBrush" Value="{StaticResource SecondaryTextColor}" />
         <Setter Property="VerticalContentAlignment" Value="Center" />
     </Style>

+ 25 - 0
src/PicView.Avalonia/PicViewTheme/Controls/Button.axaml

@@ -197,6 +197,31 @@
             <Setter Property="Foreground" Value="{DynamicResource AccentColor}" />
         </Style>
 
+        <Style Selector="^.foregroundHoverAlt:pointerover /template/ ContentPresenter#PART_ContentPresenter">
+            <Style.Animations>
+                <Animation Duration="{StaticResource ButtonHoverAnimationDuration}" IterationCount="1">
+                    <KeyFrame>
+                        <Setter Property="Foreground">
+                            <SolidColorBrush Color="{DynamicResource MainTextColor}" />
+                        </Setter>
+                        <Setter Property="Background">
+                            <SolidColorBrush Color="Transparent" />
+                        </Setter>
+                    </KeyFrame>
+                    <KeyFrame Cue="1">
+                        <Setter Property="Foreground">
+                            <SolidColorBrush Color="{StaticResource SecondaryTextColor}" />
+                        </Setter>
+                        <Setter Property="Background">
+                            <SolidColorBrush Color="{DynamicResource AltBackgroundColor}" />
+                        </Setter>
+                    </KeyFrame>
+                </Animation>
+            </Style.Animations>
+            <Setter Property="Foreground" Value="{StaticResource SecondaryTextColor}" />
+            <Setter Property="Background" Value="{DynamicResource AltBackgroundColor}" />
+        </Style>
+
         <!--  End of animations  -->
 
         <Style Selector="^.noAnimHover:pointerover /template/ ContentPresenter#PART_ContentPresenter">

+ 5 - 0
src/PicView.Avalonia/PicViewTheme/Controls/ComboBoxItem.axaml

@@ -24,18 +24,23 @@
         </Setter>
         <Style Selector="^:pointerover /template/ ContentPresenter#PART_ContentPresenter">
             <Setter Property="Background" Value="{DynamicResource SecondaryAccentColor}" />
+            <Setter Property="Foreground" Value="{StaticResource SecondaryTextColor}" />
         </Style>
         <Style Selector="^:selected /template/ ContentPresenter#PART_ContentPresenter">
             <Setter Property="Background" Value="{DynamicResource AccentColor}" />
+            <Setter Property="Foreground" Value="{StaticResource SecondaryTextColor}" />
         </Style>
         <Style Selector="^:selected:focus /template/ ContentPresenter#PART_ContentPresenter">
             <Setter Property="Background" Value="{DynamicResource AccentColor}" />
+            <Setter Property="Foreground" Value="{StaticResource SecondaryTextColor}" />
         </Style>
         <Style Selector="^:selected:pointerover /template/ ContentPresenter#PART_ContentPresenter">
             <Setter Property="Background" Value="{DynamicResource AccentColor}" />
+            <Setter Property="Foreground" Value="{StaticResource SecondaryTextColor}" />
         </Style>
         <Style Selector="^:selected:focus:pointerover /template/ ContentPresenter#PART_ContentPresenter">
             <Setter Property="Background" Value="{DynamicResource AccentColor}" />
+            <Setter Property="Foreground" Value="{StaticResource SecondaryTextColor}" />
         </Style>
 
         <Style Selector="^:focus-within /template/ ContentPresenter#PART_ContentPresenter">

+ 5 - 0
src/PicView.Avalonia/PicViewTheme/Controls/Menu.axaml

@@ -64,6 +64,7 @@
                             ContentTemplate="{TemplateBinding HeaderTemplate}"
                             Foreground="{DynamicResource ContextMenuTextColor}"
                             Grid.Column="2"
+                            HorizontalAlignment="{TemplateBinding HorizontalAlignment}"
                             Margin="{TemplateBinding Padding}"
                             Name="PART_HeaderPresenter"
                             VerticalAlignment="Center">
@@ -168,6 +169,10 @@
             <Setter Property="CornerRadius" Value="0" />
         </Style>
 
+        <Style Selector="^:nth-child(1):nth-last-child(1) /template/ Border#root">
+            <Setter Property="CornerRadius" Value="0" />
+        </Style>
+
         <Style Selector="^:empty /template/ Path#rightArrow">
             <Setter Property="IsVisible" Value="False" />
         </Style>

+ 1 - 13
src/PicView.Avalonia/PicViewTheme/Controls/SplitButton.axaml

@@ -42,6 +42,7 @@
                     Content="{TemplateBinding Content}"
                     ContentTemplate="{TemplateBinding ContentTemplate}"
                     CornerRadius="{TemplateBinding CornerRadius}"
+                    Foreground="{TemplateBinding Foreground}"
                     HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
                     Padding="{TemplateBinding Padding}"
                     RecognizesAccessKey="True"
@@ -50,19 +51,6 @@
             </ControlTemplate>
         </Setter>
 
-        <Style Selector="^:pressed /template/ ContentPresenter">
-            <Setter Property="Background" Value="{DynamicResource SecondaryAccentColor}" />
-        </Style>
-
-        <Style Selector="^[Tag=flyout-open] /template/ ContentPresenter">
-            <Setter Property="Background" Value="{DynamicResource BackgroundHoverColor}" />
-        </Style>
-
-        <Style Selector="^[Tag=checked]">
-            <Style Selector="^ /template/ ContentPresenter">
-                <Setter Property="Background" Value="{DynamicResource BackgroundHoverColor}" />
-            </Style>
-        </Style>
     </ControlTheme>
 
     <ControlTheme TargetType="SplitButton" x:Key="{x:Type SplitButton}">

+ 2 - 1
src/PicView.Avalonia/PicViewTheme/Controls/TextBox.axaml

@@ -98,8 +98,9 @@
         <Style Selector="^ /template/ DockPanel">
             <Setter Property="Cursor" Value="IBeam" />
         </Style>
+
         <Style Selector="^:disabled /template/ Border#border">
-            <Setter Property="Background" Value="{StaticResource DisabledBackgroundColor}" />
+            <Setter Property="Background" Value="{DynamicResource DisabledBackgroundColor}" />
         </Style>
 
         <Style Selector="^.txtShadow /template/ TextPresenter#PART_TextPresenter">

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 3 - 0
src/PicView.Avalonia/PicViewTheme/Icons.axaml


+ 3 - 3
src/PicView.Avalonia/PicViewTheme/ResourceDictionaries/MainColors.axaml

@@ -80,10 +80,10 @@
             <Color x:Key="MainTextColor">#424242</Color>
 
             <Color x:Key="MainBackgroundColor">White</Color>
-            <Color x:Key="SecondaryBackgroundColor">#1CFFFFFF</Color>
+            <Color x:Key="SecondaryBackgroundColor">#E4FFFFFF</Color>
             <Color x:Key="TertiaryBackgroundColor">#E29E9E9E</Color>
 
-            <Color x:Key="DisabledBackgroundColor">#DE5B5B5B</Color>
+            <Color x:Key="DisabledBackgroundColor">#B8CFCFCF</Color>
             <Color x:Key="DisabledTextColor">#ACA1A1A1</Color>
 
             <Color x:Key="BackgroundHoverColor">#A2EEEEEE</Color>
@@ -113,7 +113,7 @@
             <Color x:Key="WindowBorderColor">#39FFFFFF</Color>
             <Color x:Key="WindowButtonBackgroundColor">#fff</Color>
 
-            <Color x:Key="DropDownBgColor">#7C7C7C</Color>
+            <Color x:Key="DropDownBgColor">#F3F8F8F8</Color>
 
             <Color x:Key="NoisyTexture">#17FFFFFF</Color>
         </ResourceDictionary>

+ 25 - 24
src/PicView.Avalonia/UI/UIHelper.cs

@@ -127,37 +127,29 @@ public static class UIHelper
         }
     }
 
+    public static SolidColorBrush GetBrush(string resourceName) =>
+        new(GetColor(resourceName));
+
+    public static Color GetColor(string resourceName)
+    {
+        if (!Application.Current.TryGetResource(resourceName,
+                Application.Current.RequestedThemeVariant, out var textColor))
+        {
+            return default;
+        }
+
+        return textColor is not Color color ? default : color;
+    }
+
     public static void SetButtonHover(Control button, SolidColorBrush brush)
     {
         button.PointerEntered += (_, _) =>
         {
-            if (!Application.Current.TryGetResource("SecondaryTextColor",
-                    Application.Current.RequestedThemeVariant, out var textColor))
-            {
-                return;
-            }
-
-            if (textColor is not Color color)
-            {
-                return;
-            }
-
-            brush.Color = color;
+            brush.Color = GetColor("SecondaryTextColor");
         };
         button.PointerExited += (s, e) =>
         {
-            if (!Application.Current.TryGetResource("MainTextColor",
-                    Application.Current.RequestedThemeVariant, out var textColor))
-            {
-                return;
-            }
-
-            if (textColor is not Color color)
-            {
-                return;
-            }
-
-            brush.Color = color;
+            brush.Color = GetColor("MainTextColor");
         };
     }
 
@@ -166,6 +158,12 @@ public static class UIHelper
         control.Classes.Remove("altHover");
         control.Classes.Add("hover");
     }
+    
+    public static void SwitchAccentHoverClass(Control control)
+    {
+        control.Classes.Remove("altHover");
+        control.Classes.Add("accentHover");
+    }
 
     public static void SwitchHoverBorderClass(Control control)
     {
@@ -173,5 +171,8 @@ public static class UIHelper
         control.Classes.Add("hover");
     }
 
+    public static SolidColorBrush? GetMenuBackgroundColor() =>
+        GetBrush("MenuBackgroundColor");
+
     #endregion
 }

+ 2 - 6
src/PicView.Avalonia/ViewModels/MainViewModel.cs

@@ -37,11 +37,7 @@ public class MainViewModel
         // Only use for unit test
     }
     
+    // TODO should remove this and work towards moving MainViewModel to Core project
     public ImageViewer? ImageViewer;
-
-
-
-
-
-
+    
 }

+ 7 - 3
src/PicView.Avalonia/Views/Config/AppearanceView.axaml

@@ -33,9 +33,13 @@
             Padding="5,7,0,7"
             Width="300"
             x:Name="ThemeBox">
-            <ComboBoxItem Content="{CompiledBinding Translation.DarkTheme.Value, Mode=OneWay}" x:Name="DarkThemeBox" />
+            <ComboBoxItem
+                Content="{CompiledBinding Translation.DarkTheme.Value,
+                                          Mode=OneWay}"
+                Foreground="{DynamicResource MainTextColor}"
+                x:Name="DarkThemeBox" />
             <ComboBoxItem x:Name="LightThemeBox">
-                <TextBlock Classes="txt">
+                <TextBlock Classes="txt" Foreground="{DynamicResource MainTextColor}">
                     <TextBlock.Inlines>
                         <Run Text="{CompiledBinding Translation.LightTheme.Value, Mode=OneWay}" />
                         <Run FontStyle="Italic" Text=" (beta)" />
@@ -43,7 +47,7 @@
                 </TextBlock>
             </ComboBoxItem>
             <ComboBoxItem x:Name="GlassThemeBox">
-                <TextBlock Classes="txt">
+                <TextBlock Classes="txt" Foreground="{DynamicResource MainTextColor}">
                     <TextBlock.Inlines>
                         <Run Text="{CompiledBinding Translation.GlassTheme.Value, Mode=OneWay}" />
                         <Run FontStyle="Italic" Text=" (beta)" />

+ 6 - 0
src/PicView.Avalonia/Views/Config/FileAssociationsView.axaml

@@ -152,6 +152,7 @@
                     Background="Transparent"
                     Classes="altHover mainBtn"
                     Command="{CompiledBinding AssociationsViewModel.ResetCommand}"
+                    CornerRadius="3"
                     DockPanel.Dock="Left"
                     HorizontalAlignment="Left"
                     Padding="20,10">
@@ -164,14 +165,17 @@
 
                 <Button
                     Background="{DynamicResource AccentColor}"
+                    BorderThickness="0"
                     Classes="BorderStyle accentHover mainBtn"
                     Command="{CompiledBinding AssociationsViewModel.ApplyCommand}"
+                    CornerRadius="3"
                     DockPanel.Dock="Right"
                     HorizontalAlignment="Right"
                     Padding="20,10">
                     <StackPanel Orientation="Horizontal">
                         <TextBlock
                             Classes="txt"
+                            Foreground="{StaticResource SecondaryTextColor}"
                             Margin="10,0,0,0"
                             Text="{CompiledBinding Translation.Apply.Value,
                                                    Mode=OneWay}" />
@@ -188,6 +192,7 @@
                     BorderThickness="0"
                     Classes="errorHover mainBtn"
                     Command="{CompiledBinding AssociationsViewModel.UnassociateCommand}"
+                    CornerRadius="3"
                     DockPanel.Dock="Right"
                     HorizontalAlignment="Right"
                     Padding="5,0"
@@ -195,6 +200,7 @@
                     <StackPanel Orientation="Horizontal">
                         <TextBlock
                             Classes="txt"
+                            Foreground="{StaticResource SecondaryTextColor}"
                             Margin="10,0,0,0"
                             Text="{CompiledBinding Translation.Unassociate.Value,
                                                    Mode=OneWay}" />

+ 7 - 3
src/PicView.Avalonia/Views/Config/FileAssociationsView.axaml.cs

@@ -93,13 +93,15 @@ public partial class FileAssociationsView : UserControl
                 }
             }
 
+            var brush = UIHelper.GetBrush("SecondaryTextColor");
+
             // Create group header checkbox
             var groupCheckBox = new CheckBox
             {
                 Classes = { "altHover", "y", "changeColor" },
                 Tag = "group",
                 Name = fileTypeGroup.Name,
-                IsThreeState = true,
+                Foreground = brush,
                 IsChecked = fileTypeGroup.IsSelected.CurrentValue
             };
 
@@ -107,6 +109,7 @@ public partial class FileAssociationsView : UserControl
             {
                 Classes = { "txt" },
                 Text = fileTypeGroup.Name,
+                Foreground = brush,
                 FontFamily = new FontFamily("avares://PicView.Avalonia/Assets/Fonts/Roboto-Bold.ttf#Roboto")
             };
 
@@ -137,7 +140,7 @@ public partial class FileAssociationsView : UserControl
                     Classes = { "altHover", "x", "changeColor" },
                     Tag = fileType.Extension,
                     IsChecked = fileType.IsSelected.CurrentValue,
-                    IsThreeState = true
+                    Foreground = brush
                 };
 
                 var fileTextBlock = new TextBlock
@@ -145,7 +148,8 @@ public partial class FileAssociationsView : UserControl
                     Classes = { "txt" },
                     Text = $"{fileType.Description} ({fileType.Extension})",
                     Margin = new Thickness(0),
-                    Padding = new Thickness(0, 1, 5, 0)
+                    Padding = new Thickness(0, 1, 5, 0),
+                    Foreground = brush
                 };
 
                 fileCheckBox.Content = fileTextBlock;

+ 81 - 30
src/PicView.Avalonia/Views/Config/GallerySettingsView.axaml

@@ -19,33 +19,29 @@
             Classes="txt"
             FontFamily="/Assets/Fonts/Roboto-Bold.ttf#Roboto"
             FontSize="14"
+            Foreground="{StaticResource SecondaryTextColor}"
             Margin="0,20,0,20"
             Text="{CompiledBinding Translation.GallerySettings.Value,
                                    Mode=OneWay}" />
 
-        <Button
+        <ToggleButton
             Background="Transparent"
             BorderThickness="0"
             Classes="altHover changeColor"
             Command="{CompiledBinding Gallery.ToggleBottomGalleryCommand}"
+            IsChecked="{CompiledBinding Gallery.IsBottomGalleryShown.Value}"
             Margin="0,0,0,10"
-            Padding="0,10,0,10"
             Width="300"
             x:Name="ToggleBottomGalleryButton">
-            <StackPanel Orientation="Horizontal">
-                <Image
-                    Height="20"
-                    Margin="9,0,9,0"
-                    Source="{StaticResource GalleryImage}"
-                    Width="20" />
-                <TextBlock
-                    Classes="txt"
-                    Margin="0"
-                    MaxWidth="240"
-                    Padding="0,1,5,0"
-                    Text="{CompiledBinding Translation.IsShowingBottomGallery.Value}" />
-            </StackPanel>
-        </Button>
+            <TextBlock
+                Classes="txt"
+                Foreground="{StaticResource SecondaryTextColor}"
+                Margin="0"
+                MaxWidth="240"
+                Padding="0,1,5,0"
+                Text="{CompiledBinding Translation.IsShowingBottomGallery.Value,
+                                       Mode=OneWay}" />
+        </ToggleButton>
 
         <ToggleButton
             Background="Transparent"
@@ -57,6 +53,7 @@
             Width="300">
             <TextBlock
                 Classes="txt"
+                Foreground="{StaticResource SecondaryTextColor}"
                 Margin="0"
                 MaxWidth="240"
                 Padding="0,1,5,0"
@@ -67,6 +64,7 @@
         <TextBlock
             Classes="txt"
             FontFamily="/Assets/Fonts/Roboto-Bold.ttf#Roboto"
+            Foreground="{StaticResource SecondaryTextColor}"
             Margin="0,10,0,10"
             MaxWidth="300"
             Text="{CompiledBinding Translation.ExpandedGalleryItemSize.Value,
@@ -75,7 +73,7 @@
         <TextBlock
             Classes="txt"
             FontFamily="/Assets/Fonts/Roboto-Bold.ttf#Roboto"
-            Foreground="{DynamicResource MainTextColorFaded}"
+            Foreground="{StaticResource SecondaryTextColor}"
             Margin="0,0,0,15"
             Text="{CompiledBinding Gallery.GalleryItem.ExpandedGalleryItemHeight,
                                    Mode=OneWay}" />
@@ -84,6 +82,7 @@
             Classes="txt"
             FontFamily="/Assets/Fonts/Roboto-Bold.ttf#Roboto"
             FontSize="12"
+            Foreground="{StaticResource SecondaryTextColor}"
             Margin="0,10,0,10"
             MaxWidth="300"
             Text="{CompiledBinding Translation.BottomGalleryItemSize.Value,
@@ -92,7 +91,7 @@
         <TextBlock
             Classes="txt"
             FontFamily="/Assets/Fonts/Roboto-Bold.ttf#Roboto"
-            Foreground="{DynamicResource MainTextColorFaded}"
+            Foreground="{StaticResource SecondaryTextColor}"
             Margin="0,0,0,15"
             Text="{CompiledBinding Gallery.GalleryItem.BottomGalleryItemHeight,
                                    Mode=OneWay}" />
@@ -101,6 +100,7 @@
             Classes="txt"
             FontFamily="/Assets/Fonts/Roboto-Bold.ttf#Roboto"
             FontSize="12"
+            Foreground="{StaticResource SecondaryTextColor}"
             Margin="0,10,0,15"
             MaxWidth="300"
             Text="{CompiledBinding Translation.GalleryThumbnailStretch.Value,
@@ -110,22 +110,48 @@
             BorderBrush="{DynamicResource MainBorderColor}"
             BorderThickness="1"
             FontFamily="/Assets/Fonts/Roboto-Medium.ttf#Roboto"
+            Foreground="{DynamicResource MainTextColor}"
             Margin="0,5,0,15"
             Padding="5,7,0,7"
             Width="300"
             x:Name="FullGalleryComboBox">
-            <ComboBoxItem Content="{CompiledBinding Translation.Uniform.Value, Mode=OneWay}" x:Name="FullGalleryUniformItem" />
-            <ComboBoxItem Content="{CompiledBinding Translation.UniformToFill.Value, Mode=OneWay}" x:Name="FullGalleryUniformToFillItem" />
-            <ComboBoxItem Content="{CompiledBinding Translation.Fill.Value, Mode=OneWay}" x:Name="FullGalleryFillItem" />
-            <ComboBoxItem Content="{CompiledBinding Translation.None.Value, Mode=OneWay}" x:Name="FullGalleryNoneItem" />
-            <ComboBoxItem Content="{CompiledBinding Translation.Square.Value, Mode=OneWay}" x:Name="FullGallerySquareItem" />
-            <ComboBoxItem Content="{CompiledBinding Translation.FillSquare.Value, Mode=OneWay}" x:Name="FullGalleryFillSquareItem" />
+            <ComboBoxItem
+                Content="{CompiledBinding Translation.Uniform.Value,
+                                          Mode=OneWay}"
+                Foreground="{DynamicResource MainTextColor}"
+                x:Name="FullGalleryUniformItem" />
+            <ComboBoxItem
+                Content="{CompiledBinding Translation.UniformToFill.Value,
+                                          Mode=OneWay}"
+                Foreground="{DynamicResource MainTextColor}"
+                x:Name="FullGalleryUniformToFillItem" />
+            <ComboBoxItem
+                Content="{CompiledBinding Translation.Fill.Value,
+                                          Mode=OneWay}"
+                Foreground="{DynamicResource MainTextColor}"
+                x:Name="FullGalleryFillItem" />
+            <ComboBoxItem
+                Content="{CompiledBinding Translation.None.Value,
+                                          Mode=OneWay}"
+                Foreground="{DynamicResource MainTextColor}"
+                x:Name="FullGalleryNoneItem" />
+            <ComboBoxItem
+                Content="{CompiledBinding Translation.Square.Value,
+                                          Mode=OneWay}"
+                Foreground="{DynamicResource MainTextColor}"
+                x:Name="FullGallerySquareItem" />
+            <ComboBoxItem
+                Content="{CompiledBinding Translation.FillSquare.Value,
+                                          Mode=OneWay}"
+                Foreground="{DynamicResource MainTextColor}"
+                x:Name="FullGalleryFillSquareItem" />
         </ComboBox>
 
         <TextBlock
             Classes="txt"
             FontFamily="/Assets/Fonts/Roboto-Bold.ttf#Roboto"
             FontSize="12"
+            Foreground="{StaticResource SecondaryTextColor}"
             Margin="0,3,0,15"
             MaxWidth="300"
             Text="{CompiledBinding Translation.BottomGalleryThumbnailStretch.Value,
@@ -135,16 +161,41 @@
             BorderBrush="{DynamicResource MainBorderColor}"
             BorderThickness="1"
             FontFamily="/Assets/Fonts/Roboto-Medium.ttf#Roboto"
+            Foreground="{DynamicResource MainTextColor}"
             Margin="0,5,0,15"
             Padding="5,7,0,7"
             Width="300"
             x:Name="BottomGalleryComboBox">
-            <ComboBoxItem Content="{CompiledBinding Translation.Uniform.Value, Mode=OneWay}" x:Name="BottomGalleryUniformItem" />
-            <ComboBoxItem Content="{CompiledBinding Translation.UniformToFill.Value, Mode=OneWay}" x:Name="BottomGalleryUniformToFillItem" />
-            <ComboBoxItem Content="{CompiledBinding Translation.Fill.Value, Mode=OneWay}" x:Name="BottomGalleryFillItem" />
-            <ComboBoxItem Content="{CompiledBinding Translation.None.Value, Mode=OneWay}" x:Name="BottomGalleryNoneItem" />
-            <ComboBoxItem Content="{CompiledBinding Translation.Square.Value, Mode=OneWay}" x:Name="BottomGallerySquareItem" />
-            <ComboBoxItem Content="{CompiledBinding Translation.FillSquare.Value, Mode=OneWay}" x:Name="BottomGalleryFillSquareItem" />
+            <ComboBoxItem
+                Content="{CompiledBinding Translation.Uniform.Value,
+                                          Mode=OneWay}"
+                Foreground="{DynamicResource MainTextColor}"
+                x:Name="BottomGalleryUniformItem" />
+            <ComboBoxItem
+                Content="{CompiledBinding Translation.UniformToFill.Value,
+                                          Mode=OneWay}"
+                Foreground="{DynamicResource MainTextColor}"
+                x:Name="BottomGalleryUniformToFillItem" />
+            <ComboBoxItem
+                Content="{CompiledBinding Translation.Fill.Value,
+                                          Mode=OneWay}"
+                Foreground="{DynamicResource MainTextColor}"
+                x:Name="BottomGalleryFillItem" />
+            <ComboBoxItem
+                Content="{CompiledBinding Translation.None.Value,
+                                          Mode=OneWay}"
+                Foreground="{DynamicResource MainTextColor}"
+                x:Name="BottomGalleryNoneItem" />
+            <ComboBoxItem
+                Content="{CompiledBinding Translation.Square.Value,
+                                          Mode=OneWay}"
+                Foreground="{DynamicResource MainTextColor}"
+                x:Name="BottomGallerySquareItem" />
+            <ComboBoxItem
+                Content="{CompiledBinding Translation.FillSquare.Value,
+                                          Mode=OneWay}"
+                Foreground="{DynamicResource MainTextColor}"
+                x:Name="BottomGalleryFillSquareItem" />
         </ComboBox>
     </StackPanel>
 </UserControl>

+ 3 - 2
src/PicView.Avalonia/Views/Config/GeneralSettingsView.axaml

@@ -28,12 +28,13 @@
                 BorderBrush="{DynamicResource MainBorderColor}"
                 BorderThickness="1"
                 FontFamily="/Assets/Fonts/Roboto-Medium.ttf#Roboto"
+                Foreground="{DynamicResource MainTextColor}"
                 Margin="0,6,0,10"
                 Padding="5,7,0,7"
                 Width="300"
                 x:Name="ApplicationStartupBox">
-                <ComboBoxItem Content="{CompiledBinding Translation.None.Value, Mode=OneWay}" />
-                <ComboBoxItem Content="{CompiledBinding Translation.OpenLastFile.Value, Mode=OneWay}" />
+                <ComboBoxItem Content="{CompiledBinding Translation.None.Value, Mode=OneWay}" Foreground="{DynamicResource MainTextColor}" />
+                <ComboBoxItem Content="{CompiledBinding Translation.OpenLastFile.Value, Mode=OneWay}" Foreground="{DynamicResource MainTextColor}" />
             </ComboBox>
 
             <TextBlock

+ 7 - 2
src/PicView.Avalonia/Views/Config/ImageSettingsView.axaml

@@ -17,6 +17,7 @@
             Classes="txt"
             FontFamily="/Assets/Fonts/Roboto-Bold.ttf#Roboto"
             FontSize="14"
+            Foreground="{StaticResource SecondaryTextColor}"
             Margin="0,20,0,20"
             Text="{CompiledBinding Translation.Image.Value,
                                    Mode=OneWay}" />
@@ -32,6 +33,7 @@
             Width="300">
             <TextBlock
                 Classes="txt"
+                Foreground="{StaticResource SecondaryTextColor}"
                 Margin="0"
                 MaxWidth="240"
                 Padding="0,1,5,0"
@@ -49,6 +51,7 @@
             Width="300">
             <TextBlock
                 Classes="txt"
+                Foreground="{StaticResource SecondaryTextColor}"
                 Margin="0"
                 MaxWidth="240"
                 Padding="0,1,5,0"
@@ -67,6 +70,7 @@
             Width="300">
             <TextBlock
                 Classes="txt"
+                Foreground="{StaticResource SecondaryTextColor}"
                 Margin="0"
                 MaxWidth="240"
                 Padding="0,1,5,0"
@@ -87,12 +91,13 @@
             BorderBrush="{DynamicResource MainBorderColor}"
             BorderThickness="1"
             FontFamily="/Assets/Fonts/Roboto-Medium.ttf#Roboto"
+            Foreground="{DynamicResource MainTextColor}"
             Margin="0,6,0,10"
             Padding="5,7,0,7"
             Width="300"
             x:Name="ImageAliasingBox">
-            <ComboBoxItem Content="{CompiledBinding Translation.HighQuality.Value, Mode=OneWay}" />
-            <ComboBoxItem Content="{CompiledBinding Translation.None.Value, Mode=OneWay}" />
+            <ComboBoxItem Content="{CompiledBinding Translation.HighQuality.Value, Mode=OneWay}" Foreground="{DynamicResource MainTextColor}" />
+            <ComboBoxItem Content="{CompiledBinding Translation.None.Value, Mode=OneWay}" Foreground="{DynamicResource MainTextColor}" />
         </ComboBox>
 
     </StackPanel>

+ 2 - 0
src/PicView.Avalonia/Views/Config/LanguageView.axaml

@@ -10,6 +10,7 @@
             Classes="txt"
             FontFamily="/Assets/Fonts/Roboto-Bold.ttf#Roboto"
             FontSize="14"
+            Foreground="{StaticResource SecondaryTextColor}"
             Margin="0,20,0,20"
             Text="{CompiledBinding Translation.Language.Value,
                                    Mode=OneWay}" />
@@ -19,6 +20,7 @@
             BorderBrush="{DynamicResource MainBorderColor}"
             BorderThickness="1"
             FontFamily="/Assets/Fonts/Roboto-Medium.ttf#Roboto"
+            Foreground="{DynamicResource MainTextColor}"
             Margin="0,0,0,25"
             Padding="5,7,0,7"
             Width="300"

+ 13 - 7
src/PicView.Avalonia/Views/Config/MouseView.axaml

@@ -18,6 +18,7 @@
             Classes="txt"
             FontFamily="/Assets/Fonts/Roboto-Bold.ttf#Roboto"
             FontSize="14"
+            Foreground="{StaticResource SecondaryTextColor}"
             Margin="0,20,0,20"
             Text="{CompiledBinding Translation.MouseSideButtons.Value,
                                    Mode=OneWay}" />
@@ -27,19 +28,21 @@
             BorderBrush="{DynamicResource MainBorderColor}"
             BorderThickness="1"
             FontFamily="/Assets/Fonts/Roboto-Medium.ttf#Roboto"
+            Foreground="{DynamicResource MainTextColor}"
             Margin="0,6,0,15"
             Padding="5,7,0,7"
             Width="300"
             x:Name="MouseSideButtonBox">
-            <ComboBoxItem Content="{CompiledBinding Translation.NavigateFileHistory.Value, Mode=OneWay}" />
-            <ComboBoxItem Content="{CompiledBinding Translation.NavigateBetweenDirectories.Value, Mode=OneWay}" />
-            <ComboBoxItem Content="{CompiledBinding Translation.None.Value, Mode=OneWay}" />
+            <ComboBoxItem Content="{CompiledBinding Translation.NavigateFileHistory.Value, Mode=OneWay}" Foreground="{DynamicResource MainTextColor}" />
+            <ComboBoxItem Content="{CompiledBinding Translation.NavigateBetweenDirectories.Value, Mode=OneWay}" Foreground="{DynamicResource MainTextColor}" />
+            <ComboBoxItem Content="{CompiledBinding Translation.None.Value, Mode=OneWay}" Foreground="{DynamicResource MainTextColor}" />
         </ComboBox>
 
         <TextBlock
             Classes="txt"
             FontFamily="/Assets/Fonts/Roboto-Bold.ttf#Roboto"
             FontSize="14"
+            Foreground="{StaticResource SecondaryTextColor}"
             Margin="0,20,0,20"
             Text="{CompiledBinding Translation.MouseWheel.Value,
                                    Mode=OneWay}" />
@@ -49,18 +52,20 @@
             BorderBrush="{DynamicResource MainBorderColor}"
             BorderThickness="1"
             FontFamily="/Assets/Fonts/Roboto-Medium.ttf#Roboto"
+            Foreground="{DynamicResource MainTextColor}"
             Margin="0,6,0,15"
             Padding="5,7,0,7"
             Width="300"
             x:Name="MouseWheelBox">
-            <ComboBoxItem Content="{CompiledBinding Translation.CtrlToZoom.Value, Mode=OneWay}" />
-            <ComboBoxItem Content="{CompiledBinding Translation.ScrollToZoom.Value, Mode=OneWay}" />
+            <ComboBoxItem Content="{CompiledBinding Translation.CtrlToZoom.Value, Mode=OneWay}" Foreground="{DynamicResource MainTextColor}" />
+            <ComboBoxItem Content="{CompiledBinding Translation.ScrollToZoom.Value, Mode=OneWay}" Foreground="{DynamicResource MainTextColor}" />
         </ComboBox>
 
         <TextBlock
             Classes="txt"
             FontFamily="/Assets/Fonts/Roboto-Bold.ttf#Roboto"
             FontSize="14"
+            Foreground="{StaticResource SecondaryTextColor}"
             Margin="0,10,0,10"
             MaxWidth="300"
             Text="{CompiledBinding Translation.ScrollDirection.Value,
@@ -70,12 +75,13 @@
             BorderBrush="{DynamicResource MainBorderColor}"
             BorderThickness="1"
             FontFamily="/Assets/Fonts/Roboto-Medium.ttf#Roboto"
+            Foreground="{DynamicResource MainTextColor}"
             Margin="0,6,0,15"
             Padding="5,7,0,7"
             Width="300"
             x:Name="ScrollDirectionBox">
-            <ComboBoxItem Content="{CompiledBinding Translation.Reverse.Value, Mode=OneWay}" />
-            <ComboBoxItem Content="{CompiledBinding Translation.Forward.Value, Mode=OneWay}" />
+            <ComboBoxItem Content="{CompiledBinding Translation.Reverse.Value, Mode=OneWay}" Foreground="{DynamicResource MainTextColor}" />
+            <ComboBoxItem Content="{CompiledBinding Translation.Forward.Value, Mode=OneWay}" Foreground="{DynamicResource MainTextColor}" />
         </ComboBox>
 
         <Button

+ 5 - 0
src/PicView.Avalonia/Views/Config/NavigationView.axaml

@@ -18,6 +18,7 @@
             Classes="txt"
             FontFamily="/Assets/Fonts/Roboto-Bold.ttf#Roboto"
             FontSize="14"
+            Foreground="{StaticResource SecondaryTextColor}"
             Margin="0,20,0,20"
             Text="{CompiledBinding Translation.Navigation.Value,
                                    Mode=OneWay}" />
@@ -32,6 +33,7 @@
             Width="300">
             <TextBlock
                 Classes="txt"
+                Foreground="{StaticResource SecondaryTextColor}"
                 Margin="0"
                 MaxWidth="240"
                 Padding="0,1,5,0"
@@ -51,6 +53,7 @@
             Width="300">
             <TextBlock
                 Classes="txt"
+                Foreground="{StaticResource SecondaryTextColor}"
                 Margin="0"
                 MaxWidth="240"
                 Padding="0,1,5,0"
@@ -69,6 +72,7 @@
             x:Name="TaskBarToggleButton">
             <TextBlock
                 Classes="txt"
+                Foreground="{StaticResource SecondaryTextColor}"
                 Margin="0"
                 MaxWidth="240"
                 Padding="0,1,5,0"
@@ -80,6 +84,7 @@
             Classes="txt"
             FontFamily="/Assets/Fonts/Roboto-Bold.ttf#Roboto"
             FontSize="14"
+            Foreground="{StaticResource SecondaryTextColor}"
             Margin="0,10,0,10"
             MaxWidth="300"
             Text="{CompiledBinding Translation.AdjustNavSpeed.Value,

+ 2 - 0
src/PicView.Avalonia/Views/Config/SlideshowSettingsView.axaml

@@ -19,6 +19,7 @@
             Classes="txt"
             FontFamily="/Assets/Fonts/Roboto-Bold.ttf#Roboto"
             FontSize="14"
+            Foreground="{StaticResource SecondaryTextColor}"
             Margin="0,20,0,20"
             Text="{CompiledBinding Translation.Slideshow.Value,
                                    Mode=OneWay}" />
@@ -26,6 +27,7 @@
             Classes="txt"
             FontFamily="/Assets/Fonts/Roboto-Bold.ttf#Roboto"
             FontSize="12"
+            Foreground="{StaticResource SecondaryTextColor}"
             Margin="0,10,0,10"
             MaxWidth="300"
             Text="{CompiledBinding Translation.AdjustTimingForSlideshow.Value,

+ 1 - 0
src/PicView.Avalonia/Views/Config/WindowSettingsView.axaml

@@ -46,6 +46,7 @@
             Classes="txt"
             FontFamily="/Assets/Fonts/Roboto-Bold.ttf#Roboto"
             FontSize="12"
+            Foreground="{StaticResource SecondaryTextColor}"
             IsEnabled="{CompiledBinding GlobalSettings.IsAutoFit.Value}"
             Margin="0,10,0,10"
             MaxWidth="300"

+ 4 - 2
src/PicView.Avalonia/Views/Config/ZoomSettingsView.axaml

@@ -46,18 +46,20 @@
             BorderBrush="{DynamicResource MainBorderColor}"
             BorderThickness="1"
             FontFamily="/Assets/Fonts/Roboto-Medium.ttf#Roboto"
+            Foreground="{DynamicResource MainTextColor}"
             Margin="0,6,0,15"
             Padding="5,7,0,7"
             Width="300"
             x:Name="MouseWheelBox">
-            <ComboBoxItem Content="{CompiledBinding Translation.CtrlToZoom.Value, Mode=OneWay}" />
-            <ComboBoxItem Content="{CompiledBinding Translation.ScrollToZoom.Value, Mode=OneWay}" />
+            <ComboBoxItem Content="{CompiledBinding Translation.CtrlToZoom.Value, Mode=OneWay}" Foreground="{DynamicResource MainTextColor}" />
+            <ComboBoxItem Content="{CompiledBinding Translation.ScrollToZoom.Value, Mode=OneWay}" Foreground="{DynamicResource MainTextColor}" />
         </ComboBox>
 
         <TextBlock
             Classes="txt"
             FontFamily="/Assets/Fonts/Roboto-Bold.ttf#Roboto"
             FontSize="12"
+            Foreground="{StaticResource SecondaryTextColor}"
             Margin="0,10,0,10"
             MaxWidth="300"
             Text="{CompiledBinding Translation.AdjustTimingForZoom.Value,

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 82 - 18
src/PicView.Avalonia/Views/Main/BatchResizeView.axaml


+ 19 - 7
src/PicView.Avalonia/Views/Main/BatchResizeView.axaml.cs

@@ -25,7 +25,7 @@ public partial class BatchResizeView : UserControl
 
     private CancellationTokenSource? _cancellationTokenSource;
     
-    private readonly CompositeDisposable _disposables = new CompositeDisposable();
+    private readonly CompositeDisposable _disposables = new();
 
     public BatchResizeView()
     {
@@ -301,7 +301,7 @@ public partial class BatchResizeView : UserControl
             Percentage? percentage = null;
             if (PercentageResizeBox.IsSelected)
             {
-                if (double.TryParse((string?)PercentageValueBox.Text, out var percentageValue))
+                if (double.TryParse(PercentageValueBox.Text, out var percentageValue))
                 {
                     percentage = new Percentage(percentageValue);
                 }
@@ -310,26 +310,26 @@ public partial class BatchResizeView : UserControl
             uint width = 0, height = 0;
             if (WidthResizeBox.IsSelected)
             {
-                if (uint.TryParse((string?)WidthValueBox.Text, out var widthValue))
+                if (uint.TryParse(WidthValueBox.Text, out var widthValue))
                 {
                     width = widthValue;
                 }
             }
             else if (HeightResizeBox.IsSelected)
             {
-                if (uint.TryParse((string?)HeightValueBox.Text, out var heightValue))
+                if (uint.TryParse(HeightValueBox.Text, out var heightValue))
                 {
                     height = heightValue;
                 }
             }
             else if (WidthAndHeightResizeBox.IsSelected)
             {
-                if (uint.TryParse((string?)WidthAndHeightWidthValueBox.Text, out var widthValue))
+                if (uint.TryParse(WidthAndHeightWidthValueBox.Text, out var widthValue))
                 {
                     width = widthValue;
                 }
 
-                if (uint.TryParse((string?)WidthAndHeightHeightValueBox.Text, out var heightValue))
+                if (uint.TryParse(WidthAndHeightHeightValueBox.Text, out var heightValue))
                 {
                     height = heightValue;
                 }
@@ -575,11 +575,23 @@ public partial class BatchResizeView : UserControl
         StartButton.IsEnabled = true;
     }
 
-    private TextBlock CreateTextBlockLog(string fileName, string oldSize, string newSize)
+    private TextBlock? CreateTextBlockLog(string fileName, string oldSize, string newSize)
     {
+        if (!Application.Current.TryGetResource("SecondaryTextColor",
+                Application.Current.RequestedThemeVariant, out var textColor))
+        {
+            return null;
+        }
+
+        if (textColor is not Color color)
+        {
+            return null;
+        }
+
         var textBlock = new TextBlock
         {
             Classes = { "txt", "txtShadow" },
+            Foreground = new SolidColorBrush(color),
             Padding = new Thickness(0, 0, 0, 5),
             MaxWidth = 580
         };

+ 23 - 12
src/PicView.Avalonia/Views/Main/EffectsView.axaml

@@ -85,6 +85,9 @@
             </MenuItem>
         </ContextMenu>
     </UserControl.ContextMenu>
+    <UserControl.Resources>
+        <SolidColorBrush Color="{DynamicResource MainTextColor}" x:Key="CancelBrush" />
+    </UserControl.Resources>
 
     <Panel>
         <uc:SpinWaiter
@@ -99,6 +102,7 @@
                 Classes="txt"
                 FontFamily="/Assets/Fonts/Roboto-Bold.ttf#Roboto"
                 FontSize="14"
+                Foreground="{StaticResource SecondaryTextColor}"
                 Margin="10,15,0,10"
                 Padding="10,5"
                 Text="{CompiledBinding Translation.Lighting.Value,
@@ -109,6 +113,7 @@
                 <Panel>
                     <TextBlock
                         Classes="txt"
+                        Foreground="{StaticResource SecondaryTextColor}"
                         HorizontalAlignment="Left"
                         Text="{CompiledBinding Translation.Brightness.Value,
                                                Mode=OneWay}"
@@ -168,6 +173,7 @@
                 <Panel>
                     <TextBlock
                         Classes="txt"
+                        Foreground="{StaticResource SecondaryTextColor}"
                         HorizontalAlignment="Left"
                         Text="{CompiledBinding Translation.Contrast.Value,
                                                Mode=OneWay}"
@@ -235,6 +241,7 @@
                 Classes="txt"
                 FontFamily="/Assets/Fonts/Roboto-Bold.ttf#Roboto"
                 FontSize="14"
+                Foreground="{StaticResource SecondaryTextColor}"
                 Margin="10,0,0,10"
                 Padding="10,5"
                 Text="{CompiledBinding Translation.Effects.Value,
@@ -245,6 +252,7 @@
                 <Panel Margin="0,10,0,5">
                     <TextBlock
                         Classes="txt"
+                        Foreground="{StaticResource SecondaryTextColor}"
                         HorizontalAlignment="Left"
                         Text="{CompiledBinding Translation.Blur.Value,
                                                Mode=OneWay}"
@@ -288,6 +296,7 @@
                 <Panel Margin="0,10,0,5">
                     <TextBlock
                         Classes="txt"
+                        Foreground="{StaticResource SecondaryTextColor}"
                         HorizontalAlignment="Left"
                         Text="{CompiledBinding Translation.PencilSketch.Value,
                                                Mode=OneWay}"
@@ -332,6 +341,7 @@
                 <Panel Margin="0,10,0,5">
                     <TextBlock
                         Classes="txt"
+                        Foreground="{StaticResource SecondaryTextColor}"
                         HorizontalAlignment="Left"
                         Text="{CompiledBinding Translation.Posterize.Value,
                                                Mode=OneWay}"
@@ -376,6 +386,7 @@
                 <Panel Margin="0,10,0,5">
                     <TextBlock
                         Classes="txt"
+                        Foreground="{StaticResource SecondaryTextColor}"
                         HorizontalAlignment="Left"
                         Text="{CompiledBinding Translation.Solarize.Value,
                                                Mode=OneWay}"
@@ -425,6 +436,7 @@
                     x:Name="BlackAndWhiteToggleButton">
                     <TextBlock
                         Classes="txt"
+                        Foreground="{StaticResource SecondaryTextColor}"
                         HorizontalAlignment="Left"
                         Text="{CompiledBinding Translation.BlackAndWhite.Value,
                                                Mode=OneWay}"
@@ -438,6 +450,7 @@
                     x:Name="NegativeToggleButton">
                     <TextBlock
                         Classes="txt"
+                        Foreground="{StaticResource SecondaryTextColor}"
                         HorizontalAlignment="Left"
                         Text="{CompiledBinding Translation.NegativeColors.Value,
                                                Mode=OneWay}"
@@ -451,6 +464,7 @@
                     x:Name="OldMovieToggleButton">
                     <TextBlock
                         Classes="txt"
+                        Foreground="{StaticResource SecondaryTextColor}"
                         HorizontalAlignment="Left"
                         Text="{CompiledBinding Translation.OldMovie.Value,
                                                Mode=OneWay}"
@@ -460,7 +474,7 @@
             </StackPanel>
 
             <StackPanel
-                Background="#277A7A7A"
+                Background="#5DA2A2A2"
                 Height="80"
                 Margin="0,15,0,0"
                 Orientation="Horizontal">
@@ -473,6 +487,7 @@
                     x:Name="ResetButton">
                     <TextBlock
                         Classes="txt"
+                        Foreground="{StaticResource CancelBrush}"
                         Text="{CompiledBinding Translation.ClearEffects.Value,
                                                Mode=OneWay}"
                         TextAlignment="Center" />
@@ -486,6 +501,7 @@
                     x:Name="CancelButton">
                     <TextBlock
                         Classes="txt"
+                        Foreground="{StaticResource CancelBrush}"
                         Text="{CompiledBinding Translation.Cancel.Value,
                                                Mode=OneWay}"
                         TextAlignment="Center" />
@@ -499,22 +515,17 @@
                     x:Name="SaveButton">
                     <TextBlock
                         Classes="txt"
+                        Foreground="{StaticResource SecondaryTextColor}"
                         Text="{CompiledBinding Translation.Save.Value,
                                                Mode=OneWay}"
                         TextAlignment="Center" />
                     <SplitButton.Flyout>
                         <MenuFlyout FlyoutPresenterClasses="noCornerRadius" Placement="Bottom">
-                            <Button
-                                Background="Transparent"
-                                Width="130"
-                                x:Name="SaveAsButton">
-                                <TextBlock
-                                    Classes="txt"
-                                    Foreground="{DynamicResource MainTextColor}"
-                                    Text="{CompiledBinding Translation.SaveAs.Value,
-                                                           Mode=OneWay}"
-                                    TextAlignment="Center" />
-                            </Button>
+                            <MenuItem
+                                Header="{CompiledBinding Translation.SaveAs.Value,
+                                                         Mode=OneWay}"
+                                HorizontalAlignment="Center"
+                                Width="195" />
                         </MenuFlyout>
                     </SplitButton.Flyout>
                 </SplitButton>

+ 17 - 0
src/PicView.Avalonia/Views/Main/EffectsView.axaml.cs

@@ -1,7 +1,9 @@
+using Avalonia;
 using Avalonia.Controls;
 using Avalonia.Controls.Primitives;
 using Avalonia.Input;
 using Avalonia.LogicalTree;
+using Avalonia.Media;
 using Avalonia.Threading;
 using ImageMagick;
 using PicView.Avalonia.ImageHandling;
@@ -88,6 +90,21 @@ public partial class EffectsView : UserControl
     /// <param name="vm">The main view model to use for event handling.</param>
     private void InitializeUIEvents(MainViewModel vm)
     {
+        if (!Settings.Theme.Dark)
+        {
+            if (TryGetResource("CancelBrush",
+                    Application.Current.RequestedThemeVariant, out var cBrush))
+            {
+                if (cBrush is SolidColorBrush brush)
+                {
+                    UIHelper.SetButtonHover(CancelButton, brush);
+                    UIHelper.SetButtonHover(ResetButton, brush);
+                }
+            }
+            UIHelper.SwitchAccentHoverClass(ResetButton);
+            UIHelper.SwitchAccentHoverClass(CancelButton);
+        }
+        
         CloseItem.Click += (_, _) => (VisualRoot as Window)?.Close();
         PointerPressed += OnPointerPressed;
         ClearEffectsItem.Click += async (_, _) => await RemoveEffects();

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 117 - 342
src/PicView.Avalonia/Views/Main/ImageInfoView.axaml


+ 2 - 1
src/PicView.Avalonia/Views/Main/KeybindingsView.axaml

@@ -1,5 +1,4 @@
 <UserControl
-    Margin="0,0,0,20"
     d:DesignHeight="450"
     d:DesignWidth="800"
     mc:Ignorable="d"
@@ -1224,6 +1223,7 @@
                 Width="170" />
             <customControls:KeybindTextBox
                 Classes="hover TStyle"
+                Foreground="{DynamicResource DisabledTextColor}"
                 MethodName="CutFile"
                 ToolTip.Tip="{CompiledBinding Translation.ChangeKeybindingTooltip.Value,
                                               Mode=OneWay}"
@@ -1231,6 +1231,7 @@
             <customControls:KeybindTextBox
                 Alt="True"
                 Classes="hover TStyle"
+                Foreground="{DynamicResource DisabledTextColor}"
                 MethodName="CutFile"
                 ToolTip.Tip="{CompiledBinding Translation.ChangeKeybindingTooltip.Value,
                                               Mode=OneWay}"

+ 0 - 1
src/PicView.Avalonia/Views/Main/MainView.axaml

@@ -15,7 +15,6 @@
     xmlns:gallery="clr-namespace:PicView.Avalonia.Views.Gallery"
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
     xmlns:uc="clr-namespace:PicView.Avalonia.Views.UC"
-    xmlns:views="clr-namespace:PicView.Avalonia.Views"
     xmlns:vm="clr-namespace:PicView.Avalonia.ViewModels"
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
     <Design.DataContext>

+ 134 - 132
src/PicView.Avalonia/Views/Main/SingleImageResizeView.axaml

@@ -9,144 +9,146 @@
     xmlns:uc="clr-namespace:PicView.Avalonia.Views.UC"
     xmlns:viewModels="clr-namespace:PicView.Avalonia.ViewModels;assembly=PicView.Avalonia"
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
+    <UserControl.Resources>
+        <SolidColorBrush Color="{DynamicResource MainTextColor}" x:Key="CancelBrush" />
+        <SolidColorBrush Color="{StaticResource SecondaryTextColor}" x:Key="LinkBrush" />
+    </UserControl.Resources>
     <Panel Background="{DynamicResource TertiaryBackgroundColor}" x:Name="BgPanel">
         <uc:SpinWaiter IsVisible="False" x:Name="SpinWaiter" />
 
         <StackPanel x:Name="ParentContainer">
-            <StackPanel Margin="30">
+            <Border x:Name="MainBorder">
+                <StackPanel Margin="30">
 
-                <StackPanel Margin="0,5,0,30" Orientation="Horizontal">
-                    <StackPanel>
-                        <TextBlock
-                            Classes="txt"
-                            FontFamily="/Assets/Fonts/Roboto-Medium.ttf#Roboto"
-                            FontSize="14"
-                            Margin="4,0,0,5"
-                            Text="{CompiledBinding Translation.Width.Value,
-                                                   Mode=OneWay}" />
-                        <customControls:NumTextBox
-                            Background="{DynamicResource SecondaryBackgroundColor}"
-                            Classes="hover TStyle"
-                            CornerRadius="4"
-                            Foreground="{StaticResource SecondaryTextColor}"
-                            Height="35"
-                            Margin="0"
-                            Text="{CompiledBinding PicViewer.PixelWidth.Value,
-                                                   Mode=OneWay}"
-                            ToolTip.Tip="{CompiledBinding Translation.SizeTooltip.Value,
-                                                          Mode=OneWay}"
-                            Width="195"
-                            x:Name="PixelWidthTextBox" />
-                    </StackPanel>
+                    <StackPanel Margin="0,5,0,30" Orientation="Horizontal">
+                        <StackPanel>
+                            <TextBlock
+                                Classes="txt"
+                                FontFamily="/Assets/Fonts/Roboto-Medium.ttf#Roboto"
+                                FontSize="14"
+                                Foreground="{StaticResource SecondaryTextColor}"
+                                Margin="4,0,0,5"
+                                Text="{CompiledBinding Translation.Width.Value,
+                                                       Mode=OneWay}" />
+                            <customControls:NumTextBox
+                                Background="{DynamicResource SecondaryBackgroundColor}"
+                                Classes="hover TStyle"
+                                CornerRadius="4"
+                                Foreground="{DynamicResource MainTextColor}"
+                                Height="35"
+                                Margin="0"
+                                Text="{CompiledBinding PicViewer.PixelWidth.Value,
+                                                       Mode=OneWay}"
+                                ToolTip.Tip="{CompiledBinding Translation.SizeTooltip.Value,
+                                                              Mode=OneWay}"
+                                Width="195"
+                                x:Name="PixelWidthTextBox" />
+                        </StackPanel>
 
-                    <Button
-                        Background="Transparent"
-                        Classes="altHover"
-                        Foreground="{StaticResource SecondaryTextColor}"
-                        Height="35"
-                        Margin="5,20,5,0"
-                        Width="38"
-                        x:Name="LinkChainButton">
-                        <Panel>
-                            <Image
-                                Height="21"
-                                Source="{StaticResource LinkChainImage}"
-                                Width="21"
-                                x:Name="LinkChainImage" />
-                            <Image
-                                Height="21"
-                                IsVisible="False"
-                                Source="{StaticResource UnlinkChainImage}"
-                                Width="21"
-                                x:Name="UnlinkChainImage" />
-                        </Panel>
-                    </Button>
+                        <customControls:IconButton
+                            Background="Transparent"
+                            Classes="altHover"
+                            Foreground="{StaticResource LinkBrush}"
+                            Height="35"
+                            Icon="{StaticResource LinkChainImage}"
+                            IconHeight="21"
+                            IconWidth="21"
+                            Margin="5,20,5,0"
+                            Width="38"
+                            x:Name="LinkChainButton" />
 
 
-                    <StackPanel>
-                        <TextBlock
-                            Classes="txt"
-                            FontFamily="/Assets/Fonts/Roboto-Medium.ttf#Roboto"
-                            FontSize="14"
-                            Margin="4,0,0,5"
-                            Text="{CompiledBinding Translation.Height.Value,
-                                                   Mode=OneWay}" />
-                        <customControls:NumTextBox
-                            Background="{DynamicResource SecondaryBackgroundColor}"
-                            Classes="hover TStyle"
-                            CornerRadius="4"
-                            Foreground="{StaticResource SecondaryTextColor}"
-                            Height="35"
-                            Margin="0"
-                            Text="{CompiledBinding PicViewer.PixelHeight.Value,
-                                                   Mode=OneWay}"
-                            ToolTip.Tip="{CompiledBinding Translation.SizeTooltip,
-                                                          Mode=OneWay}"
-                            Width="195"
-                            x:Name="PixelHeightTextBox" />
+                        <StackPanel>
+                            <TextBlock
+                                Classes="txt"
+                                FontFamily="/Assets/Fonts/Roboto-Medium.ttf#Roboto"
+                                FontSize="14"
+                                Foreground="{StaticResource SecondaryTextColor}"
+                                Margin="4,0,0,5"
+                                Text="{CompiledBinding Translation.Height.Value,
+                                                       Mode=OneWay}" />
+                            <customControls:NumTextBox
+                                Background="{DynamicResource SecondaryBackgroundColor}"
+                                Classes="hover TStyle"
+                                CornerRadius="4"
+                                Foreground="{DynamicResource MainTextColor}"
+                                Height="35"
+                                Margin="0"
+                                Text="{CompiledBinding PicViewer.PixelHeight.Value,
+                                                       Mode=OneWay}"
+                                ToolTip.Tip="{CompiledBinding Translation.SizeTooltip,
+                                                              Mode=OneWay}"
+                                Width="195"
+                                x:Name="PixelHeightTextBox" />
+                        </StackPanel>
                     </StackPanel>
-                </StackPanel>
 
-                <StackPanel Orientation="Horizontal">
-                    <StackPanel>
-                        <TextBlock
-                            Classes="txt"
-                            FontFamily="/Assets/Fonts/Roboto-Medium.ttf#Roboto"
-                            FontSize="14"
-                            Margin="5,0,0,2"
-                            Text="{CompiledBinding Translation.Quality.Value,
-                                                   Mode=OneWay}" />
-                        <customControls:CustomSlider
-                            IsSnapToTickEnabled="True"
-                            Margin="5,0,0,2"
-                            Maximum="100"
-                            Minimum="1"
-                            TickFrequency="1"
-                            Value="90"
-                            Width="190"
-                            x:Name="QualitySlider" />
-                        <TextBlock
-                            Classes="txt"
-                            Margin="8,0,0,3"
-                            Text="{Binding Path=Value, ElementName=QualitySlider}" />
-                    </StackPanel>
-                    <StackPanel Margin="48,0,0,0">
-                        <TextBlock
-                            Classes="txt"
-                            FontFamily="/Assets/Fonts/Roboto-Medium.ttf#Roboto"
-                            FontSize="14"
-                            Margin="5,0,0,5"
-                            Text="{CompiledBinding Translation.ConvertTo.Value,
-                                                   Mode=OneWay}" />
-                        <ComboBox
-                            Background="{DynamicResource SecondaryBackgroundColor}"
-                            BorderBrush="{DynamicResource MainBorderColor}"
-                            BorderThickness="1"
-                            CornerRadius="4"
-                            FontFamily="/Assets/Fonts/Roboto-Medium.ttf#Roboto"
-                            Height="30"
-                            HorizontalAlignment="Right"
-                            Margin="0"
-                            Padding="5,7,0,7"
-                            SelectedIndex="0"
-                            Width="195"
-                            x:Name="ConversionComboBox">
-                            <ComboBoxItem Content="{CompiledBinding Translation.NoConversion.Value, Mode=OneWay}" x:Name="NoConversion" />
-                            <ComboBoxItem Content=".png" x:Name="PngItem" />
-                            <ComboBoxItem Content=".jpg" x:Name="JpgItem" />
-                            <ComboBoxItem Content=".webp" x:Name="WebpItem" />
-                            <ComboBoxItem Content=".avif" x:Name="AvifItem" />
-                            <ComboBoxItem Content=".heic" x:Name="HeicItem" />
-                            <ComboBoxItem Content=".jxl" x:Name="JxlItem" />
-                        </ComboBox>
+                    <StackPanel Orientation="Horizontal">
+                        <StackPanel>
+                            <TextBlock
+                                Classes="txt"
+                                FontFamily="/Assets/Fonts/Roboto-Medium.ttf#Roboto"
+                                FontSize="14"
+                                Foreground="{StaticResource SecondaryTextColor}"
+                                Margin="5,0,0,2"
+                                Text="{CompiledBinding Translation.Quality.Value,
+                                                       Mode=OneWay}" />
+                            <customControls:CustomSlider
+                                IsSnapToTickEnabled="True"
+                                Margin="5,0,0,2"
+                                Maximum="100"
+                                Minimum="1"
+                                TickFrequency="1"
+                                Value="90"
+                                Width="190"
+                                x:Name="QualitySlider" />
+                            <TextBlock
+                                Classes="txt"
+                                Foreground="{StaticResource SecondaryTextColor}"
+                                Margin="8,0,0,3"
+                                Text="{Binding Path=Value, ElementName=QualitySlider}" />
+                        </StackPanel>
+                        <StackPanel Margin="48,0,0,0">
+                            <TextBlock
+                                Classes="txt"
+                                FontFamily="/Assets/Fonts/Roboto-Medium.ttf#Roboto"
+                                FontSize="14"
+                                Foreground="{StaticResource SecondaryTextColor}"
+                                Margin="5,0,0,5"
+                                Text="{CompiledBinding Translation.ConvertTo.Value,
+                                                       Mode=OneWay}" />
+                            <ComboBox
+                                Background="{DynamicResource SecondaryBackgroundColor}"
+                                BorderBrush="{DynamicResource MainBorderColor}"
+                                BorderThickness="1"
+                                CornerRadius="4"
+                                FontFamily="/Assets/Fonts/Roboto-Medium.ttf#Roboto"
+                                Foreground="{DynamicResource MainTextColor}"
+                                Height="30"
+                                HorizontalAlignment="Right"
+                                Margin="0"
+                                Padding="5,7,0,7"
+                                SelectedIndex="0"
+                                Width="195"
+                                x:Name="ConversionComboBox">
+                                <ComboBoxItem Content="{CompiledBinding Translation.NoConversion.Value, Mode=OneWay}" x:Name="NoConversion" />
+                                <ComboBoxItem Content=".png" x:Name="PngItem" />
+                                <ComboBoxItem Content=".jpg" x:Name="JpgItem" />
+                                <ComboBoxItem Content=".webp" x:Name="WebpItem" />
+                                <ComboBoxItem Content=".avif" x:Name="AvifItem" />
+                                <ComboBoxItem Content=".heic" x:Name="HeicItem" />
+                                <ComboBoxItem Content=".jxl" x:Name="JxlItem" />
+                            </ComboBox>
+                        </StackPanel>
                     </StackPanel>
                 </StackPanel>
+            </Border>
 
-            </StackPanel>
             <StackPanel
                 Background="#277A7A7A"
                 Height="80"
-                Orientation="Horizontal">
+                Orientation="Horizontal"
+                x:Name="BottomBorder">
                 <Button
                     Classes="BorderStyle altHover mainBtn"
                     CornerRadius="4"
@@ -169,6 +171,7 @@
                     x:Name="CancelButton">
                     <TextBlock
                         Classes="txt"
+                        Foreground="{StaticResource CancelBrush}"
                         Text="{CompiledBinding Translation.Cancel.Value,
                                                Mode=OneWay}"
                         TextAlignment="Center" />
@@ -178,26 +181,25 @@
                     Background="{DynamicResource AccentColor}"
                     Classes="BorderStyle accentHover mainBtn"
                     CornerRadius="4"
+                    Padding="8"
                     Width="195"
                     x:Name="SaveButton">
                     <TextBlock
                         Classes="txt"
+                        Foreground="{StaticResource SecondaryTextColor}"
                         Text="{CompiledBinding Translation.Save.Value,
                                                Mode=OneWay}"
                         TextAlignment="Center" />
                     <SplitButton.Flyout>
                         <MenuFlyout FlyoutPresenterClasses="noCornerRadius" Placement="Bottom">
-                            <Button
+                            <MenuItem
                                 Background="Transparent"
-                                Width="130"
-                                x:Name="SaveAsButton">
-                                <TextBlock
-                                    Classes="txt"
-                                    Foreground="{DynamicResource MainTextColor}"
-                                    Text="{CompiledBinding Translation.SaveAs.Value,
-                                                           Mode=OneWay}"
-                                    TextAlignment="Center" />
-                            </Button>
+                                Header="{CompiledBinding Translation.SaveAs.Value,
+                                                         Mode=OneWay}"
+                                HorizontalAlignment="Center"
+                                Padding="0,6,24,6"
+                                Width="195"
+                                x:Name="SaveAsButton" />
                         </MenuFlyout>
                     </SplitButton.Flyout>
                 </SplitButton>

+ 57 - 5
src/PicView.Avalonia/Views/Main/SingleImageResizeView.axaml.cs

@@ -38,6 +38,27 @@ public partial class SingleImageResizeView : UserControl
         {
             BgPanel.Background = Brushes.Transparent;
         }
+        if (!Settings.Theme.Dark)
+        {
+            var topBg = new SolidColorBrush(Color.FromArgb(a: 65, r: 162, g: 162, b: 162));
+            var bottomBg = new SolidColorBrush(Color.FromArgb(a: 93, r: 162, g: 162, b: 162));
+            MainBorder.Background = topBg;
+            BottomBorder.Background = bottomBg;
+
+            var noThickness = new Thickness(0);
+            PixelWidthTextBox.BorderThickness = noThickness;
+            PixelHeightTextBox.BorderThickness = noThickness;
+            
+            if (TryGetResource("CancelBrush",
+                    Application.Current.RequestedThemeVariant, out var cBrush))
+            {
+                if (cBrush is SolidColorBrush brush)
+                {
+                    UIHelper.SetButtonHover(CancelButton, brush);
+                }
+            }
+            UIHelper.SwitchAccentHoverClass(CancelButton);
+        }
 
         _aspectRatio = (double)vm.PicViewer.PixelWidth.CurrentValue / vm.PicViewer.PixelHeight.CurrentValue;
 
@@ -159,7 +180,7 @@ public partial class SingleImageResizeView : UserControl
     private async Task SaveImageAs(MainViewModel vm)
     {
         if (Application.Current?.ApplicationLifetime is not IClassicDesktopStyleApplicationLifetime desktop
-            || desktop.MainWindow?.StorageProvider is not { } provider)
+            || desktop.MainWindow?.StorageProvider is null)
         {
             return;
         }
@@ -291,8 +312,7 @@ public partial class SingleImageResizeView : UserControl
         ConversionComboBox.SelectedItem = NoConversion;
 
         _isKeepingAspectRatio = true;
-        LinkChainImage.IsVisible = true;
-        UnlinkChainImage.IsVisible = false;
+        ToggleLinkChain();
 
         ShowCancelButton();
     }
@@ -300,8 +320,7 @@ public partial class SingleImageResizeView : UserControl
     private void ToggleAspectRatio()
     {
         _isKeepingAspectRatio = !_isKeepingAspectRatio;
-        LinkChainImage.IsVisible = _isKeepingAspectRatio;
-        UnlinkChainImage.IsVisible = !_isKeepingAspectRatio;
+        ToggleLinkChain();
 
         if (_isKeepingAspectRatio)
         {
@@ -314,6 +333,39 @@ public partial class SingleImageResizeView : UserControl
         }
     }
 
+    private void ToggleLinkChain()
+    {
+        if (!_isKeepingAspectRatio)
+        {
+            if (!Application.Current.TryGetResource("UnlinkChainImage",
+                    Application.Current.RequestedThemeVariant, out var link))
+            {
+                return;
+            }
+            
+            if (link is not DrawingImage linkImage)
+            {
+                return;
+            }
+            LinkChainButton.Icon  = linkImage;
+        }
+        else
+        {
+            if (!Application.Current.TryGetResource("LinkChainImage",
+                    Application.Current.RequestedThemeVariant, out var link))
+            {
+                return;
+            }
+            
+            if (link is not DrawingImage linkImage)
+            {
+                return;
+            }
+            LinkChainButton.Icon  = linkImage;
+        }
+
+    }
+
     ~SingleImageResizeView()
     {
         _imageUpdateSubscription?.Dispose();

+ 24 - 8
src/PicView.Avalonia/Views/UC/CropControl.axaml.cs

@@ -1,4 +1,5 @@
 using System.Runtime.InteropServices;
+using Avalonia;
 using Avalonia.Controls;
 using Avalonia.Input;
 using Avalonia.Interactivity;
@@ -9,8 +10,8 @@ namespace PicView.Avalonia.Views.UC;
 
 public partial class CropControl : UserControl
 {
-    private readonly CropKeyboardManager? _keyboardManager;
     private readonly CropDragHandler? _dragHandler;
+    private readonly CropKeyboardManager? _keyboardManager;
     private readonly CropLayoutManager? _layoutManager;
     private readonly CropResizeHandler? _resizeHandler;
 
@@ -23,10 +24,10 @@ public partial class CropControl : UserControl
             BottomMiddleButton.Cursor = Cursor.Parse("BottomSide");
             LeftMiddleButton.Cursor = Cursor.Parse("LeftSide");
             RightMiddleButton.Cursor = Cursor.Parse("RightSide");
-            
+
             MainRectangle.Cursor = Cursor.Parse("DragMove");
-            
         }
+
         _keyboardManager = new CropKeyboardManager(this);
         _dragHandler = new CropDragHandler(this);
         _resizeHandler = new CropResizeHandler(this);
@@ -44,8 +45,8 @@ public partial class CropControl : UserControl
     {
         if (Settings.Theme.GlassTheme)
         {
-            var glassBrush = new SolidColorBrush(Color.FromArgb(120,225,225,225));
-            var glassBrushAlt = new SolidColorBrush(Color.FromArgb(150,225,225,225));
+            var glassBrush = new SolidColorBrush(Color.FromArgb(120, 225, 225, 225));
+            var glassBrushAlt = new SolidColorBrush(Color.FromArgb(150, 225, 225, 225));
             SizeBorder.Background = glassBrush;
             TopLeftButton.Background = glassBrushAlt;
             BottomRightButton.Background = glassBrushAlt;
@@ -56,10 +57,25 @@ public partial class CropControl : UserControl
             LeftMiddleButton.Background = glassBrushAlt;
             RightMiddleButton.Background = glassBrushAlt;
         }
-        
+        else if (!Settings.Theme.Dark)
+        {
+            if (!Application.Current.TryGetResource("SecondaryTextColor",
+                    Application.Current.RequestedThemeVariant, out var textColor))
+            {
+                return;
+            }
+
+            if (textColor is not Color color)
+            {
+                return;
+            }
+
+            SizeBorder.Background = new SolidColorBrush(color);
+        }
+
         InitializeResizeHandlers();
         _layoutManager.InitializeLayout();
-            
+
         MainRectangle.PointerPressed += _dragHandler.OnDragStart;
         MainRectangle.PointerReleased += _dragHandler.OnDragEnd;
         MainRectangle.PointerMoved += _dragHandler.OnDragMove;
@@ -82,7 +98,7 @@ public partial class CropControl : UserControl
         RightMiddleButton.PointerReleased += _resizeHandler.OnResizeEnd;
         TopMiddleButton.PointerReleased += _resizeHandler.OnResizeEnd;
         BottomMiddleButton.PointerReleased += _resizeHandler.OnResizeEnd;
-            
+
         LostFocus += OnControlLostFocus;
     }
 

+ 2 - 2
src/PicView.Avalonia/Views/UC/Menus/ToolsMenu.axaml

@@ -77,7 +77,7 @@
                     Command="{CompiledBinding Window.ShowEffectsWindow}"
                     FontSize="14"
                     Foreground="{StaticResource EffectsBrush}"
-                    Height="45"
+                    Height="46"
                     Icon="{StaticResource FlaskImage}"
                     IconHeight="20"
                     IconMargin="11,0,0,0"
@@ -100,7 +100,7 @@
                     CornerRadius="0,8,0,0"
                     Data="{StaticResource CloseGeometry}"
                     Foreground="{DynamicResource MainTextColor}"
-                    Height="45"
+                    Height="46"
                     IconHeight="10"
                     IconWidth="10"
                     ToolTip.Tip="{CompiledBinding Translation.Close.Value,

+ 2 - 3
src/PicView.Core/ViewModels/ImageInfoWindowViewModel.cs

@@ -50,9 +50,8 @@ public class ImageInfoWindowViewModel : IDisposable
                 TextBoxXxlWidth.Value = width - (textWidth + scrollBarThickness);
                 break;
             case >= firstBreakPoint and <= secondBreakPoint:
-                TextBoxWidth.Value = TextBoxXlWidth.Value =
+                TextBoxWidth.Value = TextBoxXlWidth.Value = TextBoxXxlWidth.Value =
                     width - (textWidth + scrollBarThickness + smallPadding + copyBtnWidth);
-                TextBoxXxlWidth.Value = width - (textWidth + scrollBarThickness + copyBtnWidth);
                 break;
             case >= secondBreakPoint and <= thirdBreakPoint:
                 var thirdBreakWidth = width - width / 2 - (textWidth * 2 + scrollBarThickness + largePadding) +
@@ -60,7 +59,7 @@ public class ImageInfoWindowViewModel : IDisposable
                 TextBoxWidth.Value = thirdBreakWidth;
                 var newWidthBreakL =  thirdBreakWidth * 2 + textWidth * 2 - smallPadding * 2;
                 TextBoxXlWidth.Value = newWidthBreakL;
-                TextBoxXxlWidth.Value = newWidthBreakL - 10;
+                TextBoxXxlWidth.Value = newWidthBreakL - smallPadding;
                 break;
             case >= thirdBreakPoint:
                 var aboveThirdWidth = width / 2 - panelWidth - (textWidth * 2 + scrollBarThickness) +

Daži faili netika attēloti, jo izmaiņu fails ir pārāk liels