Browse Source

Custom window title bars wip

Equbuxu 1 year ago
parent
commit
0471a65c36

+ 15 - 12
src/PixiEditor.AvaloniaUI/Styles/PixiEditorPopupTemplate.axaml

@@ -7,23 +7,26 @@
     </Design.PreviewWith>
 
     <Style Selector="controls|PixiEditorPopup">
-        <Setter Property="Background" Value="Transparent" />
         <Setter Property="WindowStartupLocation" Value="CenterOwner"/>
         <Setter Property="TransparencyLevelHint" Value="Transparent"/>
-        <Setter Property="SystemDecorations" Value="None"/>
+        <Setter Property="ExtendClientAreaChromeHints" Value="NoChrome" />
+        <Setter Property="ExtendClientAreaToDecorationsHint" Value="True" />
+        <Setter Property="ExtendClientAreaTitleBarHeightHint" Value="36" />
         <Setter Property="ShowInTaskbar" Value="False"/>
         <Setter Property="Template">
             <ControlTemplate>
-                <Grid Background="{DynamicResource ThemeBackgroundBrush1}" Focusable="True" RowDefinitions="40, *">
-                    <Interaction.Behaviors>
-                        <behaviours:ClearFocusOnClickBehavior/>
-                    </Interaction.Behaviors>
-
-                    <controls:DialogTitleBar DockPanel.Dock="Top"
-                                            TitleKey="{TemplateBinding Title}"/>
-
-                    <ContentPresenter Grid.Row="1" DockPanel.Dock="Bottom" Content="{TemplateBinding Content}" />
-                </Grid>
+                <DockPanel>
+                    <controls:DialogTitleBar 
+                        DockPanel.Dock="Top"
+                        TitleKey="{TemplateBinding Title}"/>
+                    <Grid Background="{DynamicResource ThemeBackgroundBrush1}" Focusable="True" RowDefinitions="40, *">
+                        <Interaction.Behaviors>
+                            <behaviours:ClearFocusOnClickBehavior/>
+                        </Interaction.Behaviors>
+                        
+                        <ContentPresenter Grid.Row="1" DockPanel.Dock="Bottom" Content="{TemplateBinding Content}" />
+                    </Grid>
+                </DockPanel>
             </ControlTemplate>
         </Setter>
     </Style>

+ 55 - 21
src/PixiEditor.AvaloniaUI/Views/Dialogs/DialogTitleBar.axaml

@@ -1,30 +1,64 @@
 <UserControl
-            x:Class="PixiEditor.AvaloniaUI.Views.Dialogs.DialogTitleBar"
-            x:ClassModifier="internal"
-            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-            xmlns="https://github.com/avaloniaui"
-            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
-            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
-            xmlns:views="clr-namespace:PixiEditor.Views"
-            xmlns:ui="clr-namespace:PixiEditor.Extensions.UI;assembly=PixiEditor.Extensions"
-            xmlns:controls="https://github.com/avaloniaui"
-             mc:Ignorable="d"
-             x:Name="uc"
-             Height="35" d:DesignWidth="300">
-    <Grid Grid.Row="0" Background="{DynamicResource ThemeBackgroundBrush1}">
-        <Grid.ColumnDefinitions>
-            <ColumnDefinition/>
-            <ColumnDefinition/>
-        </Grid.ColumnDefinitions>
+    x:Class="PixiEditor.AvaloniaUI.Views.Dialogs.DialogTitleBar"
+    x:ClassModifier="internal"
+    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+    xmlns="https://github.com/avaloniaui"
+    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+    xmlns:views="clr-namespace:PixiEditor.Views"
+    xmlns:ui="clr-namespace:PixiEditor.Extensions.UI;assembly=PixiEditor.Extensions"
+    xmlns:controls="https://github.com/avaloniaui"
+    xmlns:vm="clr-namespace:PixiEditor.AvaloniaUI.ViewModels"
+    xmlns:converters="clr-namespace:PixiEditor.AvaloniaUI.Helpers.Converters"
+    mc:Ignorable="d"
+    x:Name="uc"
+    Height="36"
+    d:DesignWidth="300">
+    <Grid>
         <TextBlock 
+            IsHitTestVisible="False"
             TextAlignment="Center" HorizontalAlignment="Center" VerticalAlignment="Center" 
             ui:Translator.Key="{Binding ElementName=uc, Path=TitleKey}"
             Foreground="White" 
             FontSize="15" 
-            Margin="5,0,0,0" 
-            Grid.Column="0" Grid.ColumnSpan="2"/>
-        <Button Grid.Column="1" HorizontalAlignment="Right" IsCancel="True"
+            Margin="5,0,0,0"/>
+        <DockPanel>
+            <DockPanel.Styles>
+                <Style Selector="Button">
+                    <Setter Property="Background" Value="Transparent"/>
+                    <Setter Property="CornerRadius" Value="0"/>
+                    <Setter Property="Width" Value="48"></Setter>
+                    <Setter Property="IsHitTestVisible" Value="True"></Setter>
+                </Style>
+            </DockPanel.Styles>
+            <Button 
+                DockPanel.Dock="Right" 
+                IsCancel="True"
                 ui:Translator.TooltipKey="CLOSE"
-                    Command="{Binding ElementName=uc, Path=CloseCommand}" />
+                Click="CloseWindow">
+                ✕
+            </Button>
+            <Button
+                IsVisible="{Binding !$parent[Window].WindowState, Converter={converters:IsEqualConverter}, ConverterParameter={x:Static WindowState.Maximized}}"
+                DockPanel.Dock="Right"
+                ui:Translator.TooltipKey="MAXIMIZE"
+                Click="MaximizeWindow">
+                □
+            </Button>
+            <Button
+                IsVisible="{Binding $parent[Window].WindowState, Converter={converters:IsEqualConverter}, ConverterParameter={x:Static WindowState.Maximized}}"
+                DockPanel.Dock="Right"
+                ui:Translator.TooltipKey="RESTORE"
+                Click="RestoreWindow">
+                □□
+            </Button>
+            <Button 
+                DockPanel.Dock="Right" 
+                ui:Translator.TooltipKey="MINIMIZE"
+                Click="MinimizeWindow">
+                _
+            </Button>
+            <Control /><!-- dummy control to occupy dockpanel center -->
+        </DockPanel>
     </Grid>
 </UserControl>

+ 43 - 8
src/PixiEditor.AvaloniaUI/Views/Dialogs/DialogTitleBar.axaml.cs

@@ -1,6 +1,9 @@
 using System.Windows.Input;
 using Avalonia;
 using Avalonia.Controls;
+using Avalonia.Input;
+using Avalonia.Interactivity;
+using CommunityToolkit.Mvvm.Input;
 using PixiEditor.Views;
 
 namespace PixiEditor.AvaloniaUI.Views.Dialogs;
@@ -10,13 +13,13 @@ internal partial class DialogTitleBar : UserControl, ICustomTranslatorElement
     public static readonly StyledProperty<string> TitleKeyProperty =
         AvaloniaProperty.Register<DialogTitleBar, string>(nameof(TitleKey), string.Empty);
 
-    public static readonly StyledProperty<ICommand> CloseCommandProperty =
-        AvaloniaProperty.Register<DialogTitleBar, ICommand>(nameof(CloseCommand));
+    public static readonly StyledProperty<ICommand?> CloseCommandProperty =
+        AvaloniaProperty.Register<DialogTitleBar, ICommand?>(nameof(CloseCommand));
 
-    public ICommand CloseCommand
+    public ICommand? CloseCommand
     {
-        get { return (ICommand)GetValue(CloseCommandProperty); }
-        set { SetValue(CloseCommandProperty, value); }
+        get => GetValue(CloseCommandProperty);
+        set => SetValue(CloseCommandProperty, value);
     }
 
     /// <summary>
@@ -24,10 +27,10 @@ internal partial class DialogTitleBar : UserControl, ICustomTranslatorElement
     /// </summary>
     public string TitleKey
     {
-        get { return (string)GetValue(TitleKeyProperty); }
-        set { SetValue(TitleKeyProperty, value); }
+        get => GetValue(TitleKeyProperty);
+        set => SetValue(TitleKeyProperty, value);
     }
-
+    
     public DialogTitleBar()
     {
         InitializeComponent();
@@ -42,4 +45,36 @@ internal partial class DialogTitleBar : UserControl, ICustomTranslatorElement
     {
         return TitleKeyProperty;
     }
+
+    private void CloseWindow(object? sender, RoutedEventArgs e)
+    {
+        if (CloseCommand is { } command)
+        {
+            if (command.CanExecute(null))
+                command.Execute(null);
+            return;
+        }
+        ((Window?)VisualRoot)?.Close();
+    }
+    
+    private void MaximizeWindow(object? sender, RoutedEventArgs e)
+    {
+        if (VisualRoot is not Window window)
+            return;
+        window.WindowState = WindowState.Maximized;
+    }
+    
+    private void RestoreWindow(object? sender, RoutedEventArgs e)
+    {
+        if (VisualRoot is not Window window)
+            return;
+        window.WindowState = WindowState.Normal;
+    }
+    
+    private void MinimizeWindow(object? sender, RoutedEventArgs e)
+    {
+        if (VisualRoot is not Window window)
+            return;
+        window.WindowState = WindowState.Minimized;
+    }
 }

+ 0 - 1
src/PixiEditor.AvaloniaUI/Views/Dialogs/NewFilePopup.axaml

@@ -9,7 +9,6 @@
         Width="300" Height="250"
         SizeToContent="Height"
         Name="popup"
-        BorderBrush="Black" BorderThickness="1"
         Title="CREATE_NEW_IMAGE">
     <DockPanel Background="{DynamicResource ThemeBackgroundBrush1}" Focusable="True">
         <Button DockPanel.Dock="Bottom" Margin="0,15,0,15" HorizontalAlignment="Center"

+ 287 - 283
src/PixiEditor.AvaloniaUI/Views/Main/MainTitleBar.axaml

@@ -6,295 +6,299 @@
              xmlns:xaml="clr-namespace:PixiEditor.AvaloniaUI.Models.Commands.XAML"
              xmlns:dataHolders="clr-namespace:PixiEditor.AvaloniaUI.Models.UserData"
              xmlns:viewModels="clr-namespace:PixiEditor.AvaloniaUI.ViewModels"
+             xmlns:dialogs="clr-namespace:PixiEditor.AvaloniaUI.Views.Dialogs"
              mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
-             Background="{DynamicResource ThemeBackgroundBrush1}"
              x:Class="PixiEditor.AvaloniaUI.Views.Main.MainTitleBar">
-            <xaml:Menu
-                Margin="10, 0, 0, 0"
-                    DockPanel.Dock="Left"
-                    HorizontalAlignment="Left"
-                    VerticalAlignment="Top"
-                    Background="Transparent">
-                <MenuItem
-                        ui:Translator.Key="FILE"
-                        Focusable="False">
-                        <MenuItem
-                            ui:Translator.Key="NEW_FILE"
-                            xaml:Menu.Command="PixiEditor.File.New" />
-                        <MenuItem
-                            ui:Translator.Key="OPEN"
-                            xaml:Menu.Command="PixiEditor.File.Open" />
-                        <MenuItem
-                            ui:Translator.Key="RECENT"
-                            ItemsSource="{Binding FileSubViewModel.RecentlyOpened}"
-                            x:Name="recentItemMenu"
-                            IsEnabled="{Binding FileSubViewModel.HasRecent}">
-                            <MenuItem.Styles>
-                                <Style Selector="MenuItem">
-                                    <Setter
-                                        Property="Command"
-                                        Value="{xaml:Command PixiEditor.File.OpenRecent, UseProvided=True}" />
-                                    <Setter
-                                        Property="CommandParameter"
-                                        Value="{Binding FilePath}" />
-                                </Style>
-                            </MenuItem.Styles>
-                            <MenuItem.ItemTemplate>
-                                <DataTemplate
-                                    DataType="{x:Type dataHolders:RecentlyOpenedDocument}">
-                                    <Grid>
-                                        <Grid.ColumnDefinitions>
-                                            <ColumnDefinition/>
-                                            <ColumnDefinition Width="Auto"/>
-                                        </Grid.ColumnDefinitions>
-                                        
-                                        <TextBlock Text="{Binding FilePath}"/>
-                                        <TextBlock Grid.Column="1" Margin="20,0,0,0" VerticalAlignment="Center">
-                                            <Button Foreground="#FFF" FontFamily="{DynamicResource Feather}"
-                                                       Command="{xaml:Command Name=PixiEditor.File.RemoveRecent, UseProvided=True}"
-                                                       CommandParameter="{Binding FilePath}"></Button>
-                                        </TextBlock>
-                                    </Grid>
-                                </DataTemplate>
-                            </MenuItem.ItemTemplate>
-                        </MenuItem>
-                        <MenuItem
-                            Focusable="False"
-                            ui:Translator.Key="SAVE_PIXI"
-                            xaml:Menu.Command="PixiEditor.File.Save" />
-                        <MenuItem
-                            ui:Translator.Key="SAVE_AS_PIXI"
-                            xaml:Menu.Command="PixiEditor.File.SaveAsNew" />
-                        <MenuItem
-                            ui:Translator.Key="EXPORT_IMG"
-                            xaml:Menu.Command="PixiEditor.File.Export" />
-                        <Separator />
-                        <MenuItem
-                            ui:Translator.Key="EXIT"
-                            Command="{x:Static viewModels:SystemCommands.CloseWindowCommand}">
-                            <MenuItem.Icon>
-                                <TextBlock Text="&#xE106;" FontFamily="{DynamicResource NativeIconFont}" FontSize="20"/>
-                            </MenuItem.Icon>
-                        </MenuItem>
-                    </MenuItem>
+    <Grid>
+        <dialogs:DialogTitleBar 
+            DockPanel.Dock="Top"/>
+        <xaml:Menu
+            Margin="10, 0, 0, 0"
+                DockPanel.Dock="Left"
+                HorizontalAlignment="Left"
+                VerticalAlignment="Top"
+                Background="Transparent">
+            <MenuItem
+                ui:Translator.Key="FILE"
+                Focusable="False">
+                <MenuItem
+                    ui:Translator.Key="NEW_FILE"
+                    xaml:Menu.Command="PixiEditor.File.New" />
+                <MenuItem
+                    ui:Translator.Key="OPEN"
+                    xaml:Menu.Command="PixiEditor.File.Open" />
+                <MenuItem
+                    ui:Translator.Key="RECENT"
+                    ItemsSource="{Binding FileSubViewModel.RecentlyOpened}"
+                    x:Name="recentItemMenu"
+                    IsEnabled="{Binding FileSubViewModel.HasRecent}">
+                    <MenuItem.Styles>
+                        <Style Selector="MenuItem">
+                            <Setter
+                                Property="Command"
+                                Value="{xaml:Command PixiEditor.File.OpenRecent, UseProvided=True}" />
+                            <Setter
+                                Property="CommandParameter"
+                                Value="{Binding FilePath}" />
+                        </Style>
+                    </MenuItem.Styles>
+                    <MenuItem.ItemTemplate>
+                        <DataTemplate
+                            DataType="{x:Type dataHolders:RecentlyOpenedDocument}">
+                            <Grid>
+                                <Grid.ColumnDefinitions>
+                                    <ColumnDefinition/>
+                                    <ColumnDefinition Width="Auto"/>
+                                </Grid.ColumnDefinitions>
+                                
+                                <TextBlock Text="{Binding FilePath}"/>
+                                <TextBlock Grid.Column="1" Margin="20,0,0,0" VerticalAlignment="Center">
+                                    <Button Foreground="#FFF" FontFamily="{DynamicResource Feather}"
+                                               Command="{xaml:Command Name=PixiEditor.File.RemoveRecent, UseProvided=True}"
+                                               CommandParameter="{Binding FilePath}"></Button>
+                                </TextBlock>
+                            </Grid>
+                        </DataTemplate>
+                    </MenuItem.ItemTemplate>
+                </MenuItem>
+                <MenuItem
+                    Focusable="False"
+                    ui:Translator.Key="SAVE_PIXI"
+                    xaml:Menu.Command="PixiEditor.File.Save" />
+                <MenuItem
+                    ui:Translator.Key="SAVE_AS_PIXI"
+                    xaml:Menu.Command="PixiEditor.File.SaveAsNew" />
+                <MenuItem
+                    ui:Translator.Key="EXPORT_IMG"
+                    xaml:Menu.Command="PixiEditor.File.Export" />
+                <Separator />
+                <MenuItem
+                    ui:Translator.Key="EXIT"
+                    Command="{x:Static viewModels:SystemCommands.CloseWindowCommand}">
+                    <MenuItem.Icon>
+                        <TextBlock Text="&#xE106;" FontFamily="{DynamicResource NativeIconFont}" FontSize="20"/>
+                    </MenuItem.Icon>
+                </MenuItem>
+            </MenuItem>
+            <MenuItem
+                Focusable="False"
+                ui:Translator.Key="EDIT">
+                <MenuItem
+                    ui:Translator.Key="UNDO"
+                    xaml:Menu.Command="PixiEditor.Undo.Undo" />
+                <MenuItem
+                    ui:Translator.Key="REDO"
+                    xaml:Menu.Command="PixiEditor.Undo.Redo" />
+                <Separator />
+                <MenuItem
+                    ui:Translator.Key="CUT"
+                    xaml:Menu.Command="PixiEditor.Clipboard.Cut" />
+                <MenuItem
+                    ui:Translator.Key="COPY"
+                    xaml:Menu.Command="PixiEditor.Clipboard.Copy" />
+                <MenuItem
+                    ui:Translator.Key="PASTE"
+                    xaml:Menu.Command="PixiEditor.Clipboard.Paste" />
+                <MenuItem
+                    ui:Translator.Key="DUPLICATE"
+                    xaml:Menu.Command="PixiEditor.Layer.DuplicateSelectedLayer" />
+                <Separator />
+                <MenuItem
+                    ui:Translator.Key="DELETE_SELECTED_PIXELS"
+                    xaml:Menu.Command="PixiEditor.Document.DeletePixels" />
+                <Separator />
+                <MenuItem
+                    ui:Translator.Key="SETTINGS"
+                    xaml:Menu.Command="PixiEditor.Window.OpenSettingsWindow" />
+            </MenuItem>
+            <MenuItem
+                Focusable="False"
+                ui:Translator.Key="SELECT">
+                <MenuItem
+                    ui:Translator.Key="SELECT_ALL"
+                    xaml:Menu.Command="PixiEditor.Selection.SelectAll" />
+                <MenuItem
+                    ui:Translator.Key="DESELECT"
+                    xaml:Menu.Command="PixiEditor.Selection.Clear" />
+                <MenuItem
+                    ui:Translator.Key="INVERT"
+                    xaml:Menu.Command="PixiEditor.Selection.InvertSelection" />
+                <MenuItem
+                    ui:Translator.Key="CROP_TO_SELECTION"
+                    xaml:Menu.Command="PixiEditor.Selection.CropToSelection" />
+                <Separator/>
+                <MenuItem ui:Translator.Key="SELECTION_TO_MASK">
+                    <MenuItem
+                        ui:Translator.Key="TO_NEW_MASK"
+                        xaml:Menu.Command="PixiEditor.Selection.NewToMask" />
+                    <MenuItem
+                        ui:Translator.Key="ADD_TO_MASK"
+                        xaml:Menu.Command="PixiEditor.Selection.AddToMask" />
                     <MenuItem
-                        Focusable="False"
-                        ui:Translator.Key="EDIT">
-                        <MenuItem
-                            ui:Translator.Key="UNDO"
-                            xaml:Menu.Command="PixiEditor.Undo.Undo" />
-                        <MenuItem
-                            ui:Translator.Key="REDO"
-                            xaml:Menu.Command="PixiEditor.Undo.Redo" />
-                        <Separator />
-                        <MenuItem
-                            ui:Translator.Key="CUT"
-                            xaml:Menu.Command="PixiEditor.Clipboard.Cut" />
-                        <MenuItem
-                            ui:Translator.Key="COPY"
-                            xaml:Menu.Command="PixiEditor.Clipboard.Copy" />
-                        <MenuItem
-                            ui:Translator.Key="PASTE"
-                            xaml:Menu.Command="PixiEditor.Clipboard.Paste" />
-                        <MenuItem
-                            ui:Translator.Key="DUPLICATE"
-                            xaml:Menu.Command="PixiEditor.Layer.DuplicateSelectedLayer" />
-                        <Separator />
-                        <MenuItem
-                            ui:Translator.Key="DELETE_SELECTED_PIXELS"
-                            xaml:Menu.Command="PixiEditor.Document.DeletePixels" />
-                        <Separator />
-                        <MenuItem
-                            ui:Translator.Key="SETTINGS"
-                            xaml:Menu.Command="PixiEditor.Window.OpenSettingsWindow" />
-                    </MenuItem>
+                        ui:Translator.Key="SUBTRACT_FROM_MASK"
+                        xaml:Menu.Command="PixiEditor.Selection.SubtractFromMask" />
                     <MenuItem
-                        Focusable="False"
-                        ui:Translator.Key="SELECT">
-                        <MenuItem
-                            ui:Translator.Key="SELECT_ALL"
-                            xaml:Menu.Command="PixiEditor.Selection.SelectAll" />
-                        <MenuItem
-                            ui:Translator.Key="DESELECT"
-                            xaml:Menu.Command="PixiEditor.Selection.Clear" />
-                        <MenuItem
-                            ui:Translator.Key="INVERT"
-                            xaml:Menu.Command="PixiEditor.Selection.InvertSelection" />
-                        <MenuItem
-                            ui:Translator.Key="CROP_TO_SELECTION"
-                            xaml:Menu.Command="PixiEditor.Selection.CropToSelection" />
-                        <Separator/>
-                        <MenuItem ui:Translator.Key="SELECTION_TO_MASK">
-                            <MenuItem
-                                ui:Translator.Key="TO_NEW_MASK"
-                                xaml:Menu.Command="PixiEditor.Selection.NewToMask" />
-                            <MenuItem
-                                ui:Translator.Key="ADD_TO_MASK"
-                                xaml:Menu.Command="PixiEditor.Selection.AddToMask" />
-                            <MenuItem
-                                ui:Translator.Key="SUBTRACT_FROM_MASK"
-                                xaml:Menu.Command="PixiEditor.Selection.SubtractFromMask" />
-                            <MenuItem
-                                ui:Translator.Key="INTERSECT_WITH_MASK"
-                                xaml:Menu.Command="PixiEditor.Selection.IntersectSelectionMask" />
-                        </MenuItem>
-                    </MenuItem>
+                        ui:Translator.Key="INTERSECT_WITH_MASK"
+                        xaml:Menu.Command="PixiEditor.Selection.IntersectSelectionMask" />
+                </MenuItem>
+            </MenuItem>
+            <MenuItem
+                Focusable="False"
+                ui:Translator.Key="IMAGE">
+                <MenuItem
+                    ui:Translator.Key="RESIZE_IMAGE"
+                    xaml:Menu.Command="PixiEditor.Document.ResizeDocument" />
+                <MenuItem
+                    ui:Translator.Key="RESIZE_CANVAS"
+                    xaml:Menu.Command="PixiEditor.Document.ResizeCanvas" />
+                <Separator />
+                <MenuItem
+                    ui:Translator.Key="CLIP_CANVAS"
+                    xaml:Menu.Command="PixiEditor.Document.ClipCanvas" />
+                <MenuItem
+                    ui:Translator.Key="CENTER_CONTENT"
+                    xaml:Menu.Command="PixiEditor.Document.CenterContent" />
+                <Separator />
+                <!--TODO: Create ToggleableMenuItem
+                <MenuItem
+                    IsCheckable="True"
+                    IsEnabled="{Binding DocumentManagerSubViewModel.ActiveDocument, Source={vm:MainVM}, Converter={converters:NotNullToBoolConverter}}"
+                    IsChecked="{Binding DocumentManagerSubViewModel.ActiveDocument.HorizontalSymmetryAxisEnabledBindable}"
+                    ui:Translator.Key="HORIZONTAL_LINE_SYMMETRY">
+                    <MenuItem.Icon>
+                        <Image Source="../Images/SymmetryHorizontal.png"
+                               Width="{x:Static xaml:Menu.IconDimensions}" Height="{x:Static xaml:Menu.IconDimensions}"/>
+                    </MenuItem.Icon>
+                </MenuItem>
+                <MenuItem
+                    IsCheckable="True"
+                    IsEnabled="{Binding DocumentManagerSubViewModel.ActiveDocument, Source={vm:MainVM}, Converter={converters:NotNullToBoolConverter}}"
+                    IsChecked="{Binding DocumentManagerSubViewModel.ActiveDocument.VerticalSymmetryAxisEnabledBindable}"
+                    ui:Translator.Key="VERTICAL_LINE_SYMMETRY">
+                    <MenuItem.Icon>
+                        <Image Source="../Images/SymmetryVertical.png"
+                               Width="{x:Static xaml:Menu.IconDimensions}" Height="{x:Static xaml:Menu.IconDimensions}"/>
+                    </MenuItem.Icon>
+                </MenuItem>-->
+                <Separator/>
+                <MenuItem ui:Translator.Key="ROTATION">
+                    <MenuItem ui:Translator.Key="ROT_IMG_90_D" xaml:Menu.Command="PixiEditor.Document.Rotate90Deg"/>
+                    <MenuItem ui:Translator.Key="ROT_IMG_180_D" xaml:Menu.Command="PixiEditor.Document.Rotate180Deg"/>
+                    <MenuItem ui:Translator.Key="ROT_IMG_-90_D" xaml:Menu.Command="PixiEditor.Document.Rotate270Deg"/>
+                    
+                    <Separator/>
+                    <MenuItem ui:Translator.Key="ROT_LAYERS_90_D" xaml:Menu.Command="PixiEditor.Document.Rotate90DegLayers"/>
+                    <MenuItem ui:Translator.Key="ROT_LAYERS_180_D" xaml:Menu.Command="PixiEditor.Document.Rotate180DegLayers"/>
+                    <MenuItem ui:Translator.Key="ROT_LAYERS_-90_D" xaml:Menu.Command="PixiEditor.Document.Rotate270DegLayers"/>
+                </MenuItem>
+                <MenuItem ui:Translator.Key="FLIP">
+                    <MenuItem ui:Translator.Key="FLIP_IMG_HORIZONTALLY" xaml:Menu.Command="PixiEditor.Document.FlipImageHorizontal"/>
+                    <MenuItem ui:Translator.Key="FLIP_IMG_VERTICALLY" xaml:Menu.Command="PixiEditor.Document.FlipImageVertical"/>
+                    <MenuItem ui:Translator.Key="FLIP_LAYERS_HORIZONTALLY" xaml:Menu.Command="PixiEditor.Document.FlipLayersHorizontal"/>
+                    <MenuItem ui:Translator.Key="FLIP_LAYERS_VERTICALLY" xaml:Menu.Command="PixiEditor.Document.FlipLayersVertical"/>
+                </MenuItem>
+            </MenuItem>
+            <MenuItem
+                Focusable="False"
+                ui:Translator.Key="VIEW">
+                <MenuItem
+                    ui:Translator.Key="NEW_WINDOW_FOR_IMG"
+                    xaml:Menu.Command="PixiEditor.Window.CreateNewViewport" />
+                <Separator/>
+                <MenuItem
+                    ui:Translator.Key="OPEN_STARTUP_WINDOW"
+                    xaml:Menu.Command="PixiEditor.Window.OpenStartupWindow" />
+                <MenuItem
+                    ui:Translator.Key="OPEN_NAVIGATION_WINDOW"
+                    xaml:Menu.Command="PixiEditor.Window.OpenNavigationWindow" />
+                <MenuItem
+                    ui:Translator.Key="OPEN_SHORTCUT_WINDOW"
+                    xaml:Menu.Command="PixiEditor.Window.OpenShortcutWindow" />
+                <MenuItem
+                    ui:Translator.Key="OPEN_PALETTE_BROWSER"
+                    xaml:Menu.Command="PixiEditor.Window.OpenPalettesBrowserWindow" />
+                <Separator/>
+                <!--<MenuItem
+                    ui:Translator.Key="TOGGLE_GRIDLINES"
+                    IsChecked="{Binding ViewportSubViewModel.GridLinesEnabled, Mode=TwoWay}"
+                    IsCheckable="True"
+                    InputGestureText="{xaml:ShortcutBinding PixiEditor.View.ToggleGrid}">
+                    <MenuItem.Icon>
+                        <Image Source="../Images/Commands/PixiEditor/View/ToggleGrid.png"
+                               Width="{x:Static xaml:Menu.IconDimensions}" Height="{x:Static xaml:Menu.IconDimensions}"/>
+                    </MenuItem.Icon>
+                </MenuItem>-->
+            </MenuItem>
+            <MenuItem
+                Focusable="False"
+                ui:Translator.Key="HELP">
+                <MenuItem
+                    ui:Translator.Key="DOCUMENTATION"
+                    xaml:Menu.Command="PixiEditor.Links.OpenDocumentation" />
+                <MenuItem
+                    ui:Translator.Key="WEBSITE"
+                    xaml:Menu.Command="PixiEditor.Links.OpenWebsite" />
+                <MenuItem
+                    ui:Translator.Key="REPOSITORY"
+                    xaml:Menu.Command="PixiEditor.Links.OpenRepository" />
+                <Separator />
+                <MenuItem
+                    ui:Translator.Key="LICENSE"
+                    xaml:Menu.Command="PixiEditor.Links.OpenLicense" />
+                <MenuItem
+                    ui:Translator.Key="THIRD_PARTY_LICENSES"
+                    xaml:Menu.Command="PixiEditor.Links.OpenOtherLicenses" />
+                <Separator/>
+                <MenuItem
+                    ui:Translator.Key="ABOUT"
+                    xaml:Menu.Command="PixiEditor.Window.OpenAboutWindow" />
+            </MenuItem>
+            <MenuItem
+                ui:Translator.Key="DEBUG"
+                IsVisible="{Binding DebugSubViewModel.UseDebug}">
+                <MenuItem
+                    ui:Translator.Key="OPEN_COMMAND_DEBUG_WINDOW"
+                    xaml:Menu.Command="PixiEditor.Debug.OpenCommandDebugWindow"/>
+                <MenuItem
+                    ui:Translator.Key="OPEN_LOCALIZATION_DEBUG_WINDOW"
+                    xaml:Menu.Command="PixiEditor.Debug.OpenLocalizationDebugWindow"/>
+                <Separator/>
+                <MenuItem
+                    ui:Translator.Key="OPEN_LOCAL_APPDATA_DIR"
+                    xaml:Menu.Command="PixiEditor.Debug.OpenLocalAppDataDirectory" />
+                <MenuItem
+                    ui:Translator.Key="OPEN_ROAMING_APPDATA_DIR"
+                    xaml:Menu.Command="PixiEditor.Debug.OpenRoamingAppDataDirectory" />
+                <MenuItem
+                    ui:Translator.Key="OPEN_TEMP_DIR"
+                    xaml:Menu.Command="PixiEditor.Debug.OpenTempDirectory" />
+                <MenuItem
+                    ui:Translator.Key="OPEN_INSTALLATION_DIR"
+                    xaml:Menu.Command="PixiEditor.Debug.OpenInstallDirectory" />
+                <MenuItem
+                    ui:Translator.Key="OPEN_CRASH_REPORTS_DIR"
+                    xaml:Menu.Command="PixiEditor.Debug.OpenCrashReportsDirectory" />
+                <Separator />
+                <MenuItem
+                    ui:Translator.Key="CRASH"
+                    xaml:Menu.Command="PixiEditor.Debug.Crash" />
+                <MenuItem
+                    ui:Translator.Key="DELETE">
                     <MenuItem
-                        Focusable="False"
-                        ui:Translator.Key="IMAGE">
-                        <MenuItem
-                            ui:Translator.Key="RESIZE_IMAGE"
-                            xaml:Menu.Command="PixiEditor.Document.ResizeDocument" />
-                        <MenuItem
-                            ui:Translator.Key="RESIZE_CANVAS"
-                            xaml:Menu.Command="PixiEditor.Document.ResizeCanvas" />
-                        <Separator />
-                        <MenuItem
-                            ui:Translator.Key="CLIP_CANVAS"
-                            xaml:Menu.Command="PixiEditor.Document.ClipCanvas" />
-                        <MenuItem
-                            ui:Translator.Key="CENTER_CONTENT"
-                            xaml:Menu.Command="PixiEditor.Document.CenterContent" />
-                        <Separator />
-                        <!--TODO: Create ToggleableMenuItem
-                        <MenuItem
-                            IsCheckable="True"
-                            IsEnabled="{Binding DocumentManagerSubViewModel.ActiveDocument, Source={vm:MainVM}, Converter={converters:NotNullToBoolConverter}}"
-                            IsChecked="{Binding DocumentManagerSubViewModel.ActiveDocument.HorizontalSymmetryAxisEnabledBindable}"
-                            ui:Translator.Key="HORIZONTAL_LINE_SYMMETRY">
-                            <MenuItem.Icon>
-                                <Image Source="../Images/SymmetryHorizontal.png"
-                                       Width="{x:Static xaml:Menu.IconDimensions}" Height="{x:Static xaml:Menu.IconDimensions}"/>
-                            </MenuItem.Icon>
-                        </MenuItem>
-                        <MenuItem
-                            IsCheckable="True"
-                            IsEnabled="{Binding DocumentManagerSubViewModel.ActiveDocument, Source={vm:MainVM}, Converter={converters:NotNullToBoolConverter}}"
-                            IsChecked="{Binding DocumentManagerSubViewModel.ActiveDocument.VerticalSymmetryAxisEnabledBindable}"
-                            ui:Translator.Key="VERTICAL_LINE_SYMMETRY">
-                            <MenuItem.Icon>
-                                <Image Source="../Images/SymmetryVertical.png"
-                                       Width="{x:Static xaml:Menu.IconDimensions}" Height="{x:Static xaml:Menu.IconDimensions}"/>
-                            </MenuItem.Icon>
-                        </MenuItem>-->
-                        <Separator/>
-                        <MenuItem ui:Translator.Key="ROTATION">
-                            <MenuItem ui:Translator.Key="ROT_IMG_90_D" xaml:Menu.Command="PixiEditor.Document.Rotate90Deg"/>
-                            <MenuItem ui:Translator.Key="ROT_IMG_180_D" xaml:Menu.Command="PixiEditor.Document.Rotate180Deg"/>
-                            <MenuItem ui:Translator.Key="ROT_IMG_-90_D" xaml:Menu.Command="PixiEditor.Document.Rotate270Deg"/>
-                            
-                            <Separator/>
-                            <MenuItem ui:Translator.Key="ROT_LAYERS_90_D" xaml:Menu.Command="PixiEditor.Document.Rotate90DegLayers"/>
-                            <MenuItem ui:Translator.Key="ROT_LAYERS_180_D" xaml:Menu.Command="PixiEditor.Document.Rotate180DegLayers"/>
-                            <MenuItem ui:Translator.Key="ROT_LAYERS_-90_D" xaml:Menu.Command="PixiEditor.Document.Rotate270DegLayers"/>
-                        </MenuItem>
-                        <MenuItem ui:Translator.Key="FLIP">
-                            <MenuItem ui:Translator.Key="FLIP_IMG_HORIZONTALLY" xaml:Menu.Command="PixiEditor.Document.FlipImageHorizontal"/>
-                            <MenuItem ui:Translator.Key="FLIP_IMG_VERTICALLY" xaml:Menu.Command="PixiEditor.Document.FlipImageVertical"/>
-                            <MenuItem ui:Translator.Key="FLIP_LAYERS_HORIZONTALLY" xaml:Menu.Command="PixiEditor.Document.FlipLayersHorizontal"/>
-                            <MenuItem ui:Translator.Key="FLIP_LAYERS_VERTICALLY" xaml:Menu.Command="PixiEditor.Document.FlipLayersVertical"/>
-                        </MenuItem>
-                    </MenuItem>
+                        ui:Translator.Key="USER_PREFS"
+                        xaml:Menu.Command="PixiEditor.Debug.DeleteUserPreferences" />
                     <MenuItem
-                        Focusable="False"
-                        ui:Translator.Key="VIEW">
-                        <MenuItem
-                            ui:Translator.Key="NEW_WINDOW_FOR_IMG"
-                            xaml:Menu.Command="PixiEditor.Window.CreateNewViewport" />
-                        <Separator/>
-                        <MenuItem
-                            ui:Translator.Key="OPEN_STARTUP_WINDOW"
-                            xaml:Menu.Command="PixiEditor.Window.OpenStartupWindow" />
-                        <MenuItem
-                            ui:Translator.Key="OPEN_NAVIGATION_WINDOW"
-                            xaml:Menu.Command="PixiEditor.Window.OpenNavigationWindow" />
-                        <MenuItem
-                            ui:Translator.Key="OPEN_SHORTCUT_WINDOW"
-                            xaml:Menu.Command="PixiEditor.Window.OpenShortcutWindow" />
-                        <MenuItem
-                            ui:Translator.Key="OPEN_PALETTE_BROWSER"
-                            xaml:Menu.Command="PixiEditor.Window.OpenPalettesBrowserWindow" />
-                        <Separator/>
-                        <!--<MenuItem
-                            ui:Translator.Key="TOGGLE_GRIDLINES"
-                            IsChecked="{Binding ViewportSubViewModel.GridLinesEnabled, Mode=TwoWay}"
-                            IsCheckable="True"
-                            InputGestureText="{xaml:ShortcutBinding PixiEditor.View.ToggleGrid}">
-                            <MenuItem.Icon>
-                                <Image Source="../Images/Commands/PixiEditor/View/ToggleGrid.png"
-                                       Width="{x:Static xaml:Menu.IconDimensions}" Height="{x:Static xaml:Menu.IconDimensions}"/>
-                            </MenuItem.Icon>
-                        </MenuItem>-->
-                    </MenuItem>
+                        ui:Translator.Key="SHORTCUT_FILE"
+                        xaml:Menu.Command="PixiEditor.Debug.DeleteShortcutFile" />
                     <MenuItem
-                        Focusable="False"
-                        ui:Translator.Key="HELP">
-                        <MenuItem
-                            ui:Translator.Key="DOCUMENTATION"
-                            xaml:Menu.Command="PixiEditor.Links.OpenDocumentation" />
-                        <MenuItem
-                            ui:Translator.Key="WEBSITE"
-                            xaml:Menu.Command="PixiEditor.Links.OpenWebsite" />
-                        <MenuItem
-                            ui:Translator.Key="REPOSITORY"
-                            xaml:Menu.Command="PixiEditor.Links.OpenRepository" />
-                        <Separator />
-                        <MenuItem
-                            ui:Translator.Key="LICENSE"
-                            xaml:Menu.Command="PixiEditor.Links.OpenLicense" />
-                        <MenuItem
-                            ui:Translator.Key="THIRD_PARTY_LICENSES"
-                            xaml:Menu.Command="PixiEditor.Links.OpenOtherLicenses" />
-                        <Separator/>
-                        <MenuItem
-                            ui:Translator.Key="ABOUT"
-                            xaml:Menu.Command="PixiEditor.Window.OpenAboutWindow" />
-                    </MenuItem>
+                        ui:Translator.Key="EDITOR_DATA"
+                        xaml:Menu.Command="PixiEditor.Debug.DeleteEditorData" />
+                    <Separator/>
                     <MenuItem
-                        ui:Translator.Key="DEBUG"
-                        IsVisible="{Binding DebugSubViewModel.UseDebug}">
-                        <MenuItem
-                            ui:Translator.Key="OPEN_COMMAND_DEBUG_WINDOW"
-                            xaml:Menu.Command="PixiEditor.Debug.OpenCommandDebugWindow"/>
-                        <MenuItem
-                            ui:Translator.Key="OPEN_LOCALIZATION_DEBUG_WINDOW"
-                            xaml:Menu.Command="PixiEditor.Debug.OpenLocalizationDebugWindow"/>
-                        <Separator/>
-                        <MenuItem
-                            ui:Translator.Key="OPEN_LOCAL_APPDATA_DIR"
-                            xaml:Menu.Command="PixiEditor.Debug.OpenLocalAppDataDirectory" />
-                        <MenuItem
-                            ui:Translator.Key="OPEN_ROAMING_APPDATA_DIR"
-                            xaml:Menu.Command="PixiEditor.Debug.OpenRoamingAppDataDirectory" />
-                        <MenuItem
-                            ui:Translator.Key="OPEN_TEMP_DIR"
-                            xaml:Menu.Command="PixiEditor.Debug.OpenTempDirectory" />
-                        <MenuItem
-                            ui:Translator.Key="OPEN_INSTALLATION_DIR"
-                            xaml:Menu.Command="PixiEditor.Debug.OpenInstallDirectory" />
-                        <MenuItem
-                            ui:Translator.Key="OPEN_CRASH_REPORTS_DIR"
-                            xaml:Menu.Command="PixiEditor.Debug.OpenCrashReportsDirectory" />
-                        <Separator />
-                        <MenuItem
-                            ui:Translator.Key="CRASH"
-                            xaml:Menu.Command="PixiEditor.Debug.Crash" />
-                        <MenuItem
-                            ui:Translator.Key="DELETE">
-                            <MenuItem
-                                ui:Translator.Key="USER_PREFS"
-                                xaml:Menu.Command="PixiEditor.Debug.DeleteUserPreferences" />
-                            <MenuItem
-                                ui:Translator.Key="SHORTCUT_FILE"
-                                xaml:Menu.Command="PixiEditor.Debug.DeleteShortcutFile" />
-                            <MenuItem
-                                ui:Translator.Key="EDITOR_DATA"
-                                xaml:Menu.Command="PixiEditor.Debug.DeleteEditorData" />
-                            <Separator/>
-                            <MenuItem
-                                ui:Translator.Key="CLEAR_RECENT_DOCUMENTS"
-                                xaml:Menu.Command="PixiEditor.Debug.ClearRecentDocument"/>
-                        </MenuItem>
-                    </MenuItem>
-                </xaml:Menu>
+                        ui:Translator.Key="CLEAR_RECENT_DOCUMENTS"
+                        xaml:Menu.Command="PixiEditor.Debug.ClearRecentDocument"/>
+                </MenuItem>
+            </MenuItem>
+        </xaml:Menu>
+    </Grid>
 </UserControl>

+ 18 - 16
src/PixiEditor.AvaloniaUI/Views/MainView.axaml

@@ -14,25 +14,27 @@
              xmlns:tools="clr-namespace:PixiEditor.AvaloniaUI.Views.Main.Tools"
              mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
              x:Class="PixiEditor.AvaloniaUI.Views.MainView"
-             x:DataType="viewModels1:ViewModelMain" Background="{DynamicResource ThemeBackgroundBrush}">
+             x:DataType="viewModels1:ViewModelMain">
     <Interaction.Behaviors>
         <EventTriggerBehavior EventName="Loaded">
             <InvokeCommandAction Command="{Binding StartupCommand}"/>
         </EventTriggerBehavior>
     </Interaction.Behaviors>
-    <Grid Focusable="True">
-        <Grid.RowDefinitions>
-            <RowDefinition Height="25"/>
-            <RowDefinition Height="40"/>
-            <RowDefinition Height="*"/>
-        </Grid.RowDefinitions>
-        <main1:MainTitleBar/>
-        <tools:Toolbar Grid.Row="1" DataContext="{Binding .}"/>
-        <main1:ToolsPicker ZIndex="2" Grid.Row="2"
-                           Margin="10 0 0 0"
-                           HorizontalAlignment="Left"
-                           VerticalAlignment="Center"
-                           Tools="{Binding Path=ToolsSubViewModel.ToolSet}"/>
-        <DockControl Grid.Row="2" Layout="{Binding LayoutDockSubViewModel.Layout}"/>
-    </Grid>
+    <DockPanel>
+        <main1:MainTitleBar DockPanel.Dock="Top"/>
+        <Grid Focusable="True">
+            <Grid.RowDefinitions>
+                <RowDefinition Height="40"/>
+                <RowDefinition Height="*"/>
+            </Grid.RowDefinitions>
+        
+            <tools:Toolbar Grid.Row="0" DataContext="{Binding .}"/>
+            <main1:ToolsPicker ZIndex="2" Grid.Row="1"
+                               Margin="10 0 0 0"
+                               HorizontalAlignment="Left"
+                               VerticalAlignment="Center"
+                               Tools="{Binding Path=ToolsSubViewModel.ToolSet}"/>
+            <DockControl Grid.Row="1" Layout="{Binding LayoutDockSubViewModel.Layout}"/>
+        </Grid>
+    </DockPanel>
 </UserControl>

+ 0 - 1
src/PixiEditor.AvaloniaUI/Views/MainWindow.axaml

@@ -8,7 +8,6 @@
         mc:Ignorable="d" d:DesignWidth="1600" d:DesignHeight="1000"
         x:Class="PixiEditor.AvaloniaUI.Views.MainWindow"
         x:ClassModifier="internal"
-        WindowStartupLocation="CenterScreen"
         WindowState="Maximized"
         Name="Window"
         Icon="/Assets/avalonia-logo.ico"

+ 266 - 261
src/PixiEditor.AvaloniaUI/Views/Windows/HelloTherePopup.axaml

@@ -16,6 +16,7 @@
         xmlns:xaml="clr-namespace:PixiEditor.AvaloniaUI.Models.Commands.XAML"
         xmlns:indicators1="clr-namespace:PixiEditor.AvaloniaUI.Views.Indicators"
         xmlns:newsFeed1="clr-namespace:PixiEditor.AvaloniaUI.Views.NewsFeed"
+        xmlns:dialogs="clr-namespace:PixiEditor.AvaloniaUI.Views.Dialogs"
         mc:Ignorable="d" ShowInTaskbar="False"
         Title="Hello there!" Height="662" Width="982" MinHeight="500" MinWidth="500"
         WindowStartupLocation="CenterScreen" Loaded="HelloTherePopup_OnLoaded"
@@ -28,291 +29,295 @@
         </Style>
     </Window.Styles>
 
-    <Grid Background="{StaticResource ThemeBackgroundBrush}" x:Name="grid">
-        <Grid.RowDefinitions>
-            <RowDefinition Height="35" />
-            <RowDefinition Height="*"/>
-        </Grid.RowDefinitions>
-        <Grid.ColumnDefinitions>
-            <ColumnDefinition Width="*"/>
-            <ColumnDefinition Width="300"/>
-        </Grid.ColumnDefinitions>
+    <DockPanel>
+        <dialogs:DialogTitleBar 
+            DockPanel.Dock="Top"/>
+        <Grid Background="{StaticResource ThemeBackgroundBrush}" x:Name="grid">
+            <Grid.RowDefinitions>
+                <RowDefinition Height="35" />
+                <RowDefinition Height="*"/>
+            </Grid.RowDefinitions>
+            <Grid.ColumnDefinitions>
+                <ColumnDefinition Width="*"/>
+                <ColumnDefinition Width="300"/>
+            </Grid.ColumnDefinitions>
 
-        <ScrollViewer Grid.Column="0" Grid.Row="1" VerticalScrollBarVisibility="Auto" Margin="3,0">
-            <Grid Grid.Row="1" Margin="0,30,0,0">
-                <Grid.RowDefinitions>
-                    <RowDefinition Height="90"/>
-                    <RowDefinition Height="Auto"/>
-                    <RowDefinition MinHeight="120"/>
-                    <RowDefinition Height="Auto"/>
-                </Grid.RowDefinitions>
+            <ScrollViewer Grid.Column="0" Grid.Row="1" VerticalScrollBarVisibility="Auto" Margin="3,0">
+                <Grid Grid.Row="1" Margin="0,30,0,0">
+                    <Grid.RowDefinitions>
+                        <RowDefinition Height="90"/>
+                        <RowDefinition Height="Auto"/>
+                        <RowDefinition MinHeight="120"/>
+                        <RowDefinition Height="Auto"/>
+                    </Grid.RowDefinitions>
 
-                <Grid Grid.RowSpan="3" HorizontalAlignment="Right" VerticalAlignment="Center">
-                    <CheckBox IsVisible="{Binding !NewsDisabled}"
-                              Width="40" Height="40" IsChecked="{Binding NewsPanelCollapsed}">
-                    <CheckBox.Template>
-                        <ControlTemplate TargetType="{x:Type CheckBox}">
-                            <StackPanel Orientation="Horizontal" Focusable="False">
-                                <StackPanel.Background>
-                                    <VisualBrush>
-                                        <VisualBrush.Visual>
-                                            <Ellipse Fill="{DynamicResource ThemeBackgroundBrush}" Width="20" Height="20"/>
-                                        </VisualBrush.Visual>
-                                    </VisualBrush>
-                                </StackPanel.Background>
-                                <Image Focusable="False" Cursor="Hand" x:Name="checkboxImage" Source="/Images/Chevron-right.png">
-                                    <Image.RenderTransform>
-                                        <RotateTransform Angle="180" CenterX="19" CenterY="20"/>
-                                    </Image.RenderTransform>
-                                </Image>
-                                <ContentPresenter Focusable="False"/>
-                            </StackPanel>
+                    <Grid Grid.RowSpan="3" HorizontalAlignment="Right" VerticalAlignment="Center">
+                        <CheckBox IsVisible="{Binding !NewsDisabled}"
+                                  Width="40" Height="40" IsChecked="{Binding NewsPanelCollapsed}">
+                        <CheckBox.Template>
+                            <ControlTemplate TargetType="{x:Type CheckBox}">
+                                <StackPanel Orientation="Horizontal" Focusable="False">
+                                    <StackPanel.Background>
+                                        <VisualBrush>
+                                            <VisualBrush.Visual>
+                                                <Ellipse Fill="{DynamicResource ThemeBackgroundBrush}" Width="20" Height="20"/>
+                                            </VisualBrush.Visual>
+                                        </VisualBrush>
+                                    </StackPanel.Background>
+                                    <Image Focusable="False" Cursor="Hand" x:Name="checkboxImage" Source="/Images/Chevron-right.png">
+                                        <Image.RenderTransform>
+                                            <RotateTransform Angle="180" CenterX="19" CenterY="20"/>
+                                        </Image.RenderTransform>
+                                    </Image>
+                                    <ContentPresenter Focusable="False"/>
+                                </StackPanel>
 
-                            <!--<ControlTemplate.Triggers>
-                                <Trigger Property="IsChecked" Value="True">
-                                    <Setter TargetName="checkboxImage" Property="RenderTransform">
-                                        <Setter.Value>
-                                            <RotateTransform Angle="0" CenterX="1" CenterY="0"/>
-                                        </Setter.Value>
-                                    </Setter>
-                                </Trigger>
-                            </ControlTemplate.Triggers>-->
-                        </ControlTemplate>
-                    </CheckBox.Template>
-                </CheckBox>
-                </Grid>
-                <StackPanel Grid.Row="0" HorizontalAlignment="Center">
-                    <StackPanel Orientation="Horizontal">
-                        <Image Source="avares://PixiEditor.UI.Common/Assets/PixiEditorLogo.png" Height="40" VerticalAlignment="Center"/>
-                        <TextBlock FontSize="40" FontWeight="SemiBold" VerticalAlignment="Center" Margin="10,0,0,0">PixiEditor</TextBlock>
+                                <!--<ControlTemplate.Triggers>
+                                    <Trigger Property="IsChecked" Value="True">
+                                        <Setter TargetName="checkboxImage" Property="RenderTransform">
+                                            <Setter.Value>
+                                                <RotateTransform Angle="0" CenterX="1" CenterY="0"/>
+                                            </Setter.Value>
+                                        </Setter>
+                                    </Trigger>
+                                </ControlTemplate.Triggers>-->
+                            </ControlTemplate>
+                        </CheckBox.Template>
+                    </CheckBox>
+                    </Grid>
+                    <StackPanel Grid.Row="0" HorizontalAlignment="Center">
+                        <StackPanel Orientation="Horizontal">
+                            <Image Source="avares://PixiEditor.UI.Common/Assets/PixiEditorLogo.png" Height="40" VerticalAlignment="Center"/>
+                            <TextBlock FontSize="40" FontWeight="SemiBold" VerticalAlignment="Center" Margin="10,0,0,0">PixiEditor</TextBlock>
+                        </StackPanel>
+                        <TextBlock HorizontalAlignment="Center" FontSize="20" FontWeight="Medium" Text="{Binding VersionText}"/>
                     </StackPanel>
-                    <TextBlock HorizontalAlignment="Center" FontSize="20" FontWeight="Medium" Text="{Binding VersionText}"/>
-                </StackPanel>
 
-                <StackPanel Grid.Row="1" Orientation="Horizontal" HorizontalAlignment="Center">
-                    <Button  Command="{Binding OpenFileCommand}" MinWidth="150" Margin="10"
-                            ui:Translator.Key="OPEN_FILE"/>
-                    <Button Command="{Binding OpenNewFileCommand}" MinWidth="150" Margin="10"
-                            ui:Translator.Key="NEW_FILE"/>
-                </StackPanel>
+                    <StackPanel Grid.Row="1" Orientation="Horizontal" HorizontalAlignment="Center">
+                        <Button  Command="{Binding OpenFileCommand}" MinWidth="150" Margin="10"
+                                ui:Translator.Key="OPEN_FILE"/>
+                        <Button Command="{Binding OpenNewFileCommand}" MinWidth="150" Margin="10"
+                                ui:Translator.Key="NEW_FILE"/>
+                    </StackPanel>
 
-                <StackPanel Grid.Row="2" HorizontalAlignment="Center" Margin="0,30,0,0">
-                    <TextBlock FontSize="23" FontWeight="SemiBold" HorizontalAlignment="Center"
-                               ui:Translator.Key="RECENT_FILES"/>
-                    <TextBlock Margin="0,12.5,0,0" Foreground="LightGray" HorizontalAlignment="Center" 
-                               ui:Translator.Key="RECENT_EMPTY_TEXT">
-                        <TextBlock.IsVisible>
-                            <Binding Path="RecentlyOpened.Count"
-                                     Converter="{converters:EqualityBoolToIsVisibleConverter}">
-                                <Binding.ConverterParameter>
-                                    <system:Int32>0</system:Int32>
-                                </Binding.ConverterParameter>
-                            </Binding>
-                        </TextBlock.IsVisible>
-                    </TextBlock>
-                    <ItemsControl ItemsSource="{Binding RecentlyOpened}">
-                        <ItemsControl.ItemTemplate>
-                            <DataTemplate DataType="{x:Type dataHolders:RecentlyOpenedDocument}">
-                                <Grid>
-                                    <StackPanel Margin="8,5,8,0">
-                                        <Button Margin="0,10,0,0" HorizontalAlignment="Center"
-                                                Width="100" Height="100"
-                                                Padding="0"
-                                                Command="{Binding DataContext.OpenRecentCommand, RelativeSource={RelativeSource AncestorType=panels:AlignableWrapPanel}}"
-                                                CommandParameter="{Binding FilePath}"
-                                                
-                                                x:Name="fileButton">
-                                            <Grid Width="100" Height="100">
-                                                <Image Source="{Binding PreviewBitmap}" x:Name="image" Margin="20">
-                                                    <!--<RenderOptions.BitmapInterpolationMode> TODO: Fix
-                                                        <MultiBinding Converter="{converters:WidthToBitmapScalingModeConverter}">
-                                                            <Binding Path="PreviewBitmap.PixelSize.Width"/>
-                                                            <Binding ElementName="image" Path="Width"/>
-                                                        </MultiBinding>
-                                                    </RenderOptions.BitmapInterpolationMode>-->
-                                                </Image>
-                                                <Border Grid.Row="1" Height="8" Width="8" x:Name="extensionBorder" Margin="5"
-                                                        Background="{Binding FileExtension, Converter={converters:FileExtensionToColorConverter}}" 
-                                                        VerticalAlignment="Bottom" HorizontalAlignment="Right">
-                                                    <!--<Border.Style>
-                                                        <Style TargetType="Border">
-                                                            <Style.Triggers>
-                                                                <Trigger Property="IsMouseOver" Value="False">
-                                                                    <Setter Property="CornerRadius" Value="2"/>
-                                                                </Trigger>
-                                                                <DataTrigger Binding="{Binding IsMouseOver, ElementName=fileButton}" Value="True">
-                                                                    <DataTrigger.EnterActions>
-                                                                        <BeginStoryboard Name="open">
-                                                                            <Storyboard BeginTime="0:0:.1">
-                                                                                <DoubleAnimation Storyboard.TargetProperty="Height" By="8" To="70" BeginTime="0:0:.1" Duration="0:0:.3">
-                                                                                    <DoubleAnimation.EasingFunction>
-                                                                                        <ExponentialEase/>
-                                                                                    </DoubleAnimation.EasingFunction>
-                                                                                </DoubleAnimation>
-                                                                                <DoubleAnimation Storyboard.TargetProperty="Width" By="8" To="100" Duration="0:0:.1">
-                                                                                    <DoubleAnimation.EasingFunction>
-                                                                                        <ExponentialEase/>
-                                                                                    </DoubleAnimation.EasingFunction>
-                                                                                </DoubleAnimation>
-                                                                                <ThicknessAnimation Storyboard.TargetProperty="Margin" By="5" To="0" BeginTime="0:0:.1" Duration="0:0:.25">
-                                                                                    <ThicknessAnimation.EasingFunction>
-                                                                                        <ExponentialEase/>
-                                                                                    </ThicknessAnimation.EasingFunction>
-                                                                                </ThicknessAnimation>
-                                                                            </Storyboard>
-                                                                        </BeginStoryboard>
-                                                                    </DataTrigger.EnterActions>
-                                                                    <DataTrigger.ExitActions>
-                                                                        <BeginStoryboard Name="close">
-                                                                            <Storyboard>
-                                                                                <DoubleAnimation Storyboard.TargetProperty="Height" By="70" To="8"  Duration="0:0:.2">
-                                                                                    <DoubleAnimation.EasingFunction>
-                                                                                        <ExponentialEase/>
-                                                                                    </DoubleAnimation.EasingFunction>
-                                                                                </DoubleAnimation>
-                                                                                <DoubleAnimation Storyboard.TargetProperty="Width" By="100" To="8" BeginTime="0:0:.2" Duration="0:0:.1">
-                                                                                    <DoubleAnimation.EasingFunction>
-                                                                                        <ExponentialEase/>
-                                                                                    </DoubleAnimation.EasingFunction>
-                                                                                </DoubleAnimation>
-                                                                                <ThicknessAnimation Storyboard.TargetProperty="Margin" By="0" To="5" Duration="0:0:.1">
-                                                                                    <ThicknessAnimation.EasingFunction>
-                                                                                        <ExponentialEase/>
-                                                                                    </ThicknessAnimation.EasingFunction>
-                                                                                </ThicknessAnimation>
-                                                                            </Storyboard>
-                                                                        </BeginStoryboard>
-                                                                    </DataTrigger.ExitActions>
-                                                                    <Setter Property="CornerRadius" Value="0,0,4,4"/>
-                                                                </DataTrigger>
-                                                            </Style.Triggers>
-                                                        </Style>
-                                                    </Border.Style>-->
-                                                    <Grid HorizontalAlignment="Center" Margin="0,10,0,0" Opacity="0">
-                                                        <!--<Grid.Style>
-                                                            <Style TargetType="Grid">
+                    <StackPanel Grid.Row="2" HorizontalAlignment="Center" Margin="0,30,0,0">
+                        <TextBlock FontSize="23" FontWeight="SemiBold" HorizontalAlignment="Center"
+                                   ui:Translator.Key="RECENT_FILES"/>
+                        <TextBlock Margin="0,12.5,0,0" Foreground="LightGray" HorizontalAlignment="Center" 
+                                   ui:Translator.Key="RECENT_EMPTY_TEXT">
+                            <TextBlock.IsVisible>
+                                <Binding Path="RecentlyOpened.Count"
+                                         Converter="{converters:EqualityBoolToIsVisibleConverter}">
+                                    <Binding.ConverterParameter>
+                                        <system:Int32>0</system:Int32>
+                                    </Binding.ConverterParameter>
+                                </Binding>
+                            </TextBlock.IsVisible>
+                        </TextBlock>
+                        <ItemsControl ItemsSource="{Binding RecentlyOpened}">
+                            <ItemsControl.ItemTemplate>
+                                <DataTemplate DataType="{x:Type dataHolders:RecentlyOpenedDocument}">
+                                    <Grid>
+                                        <StackPanel Margin="8,5,8,0">
+                                            <Button Margin="0,10,0,0" HorizontalAlignment="Center"
+                                                    Width="100" Height="100"
+                                                    Padding="0"
+                                                    Command="{Binding DataContext.OpenRecentCommand, RelativeSource={RelativeSource AncestorType=panels:AlignableWrapPanel}}"
+                                                    CommandParameter="{Binding FilePath}"
+                                                    
+                                                    x:Name="fileButton">
+                                                <Grid Width="100" Height="100">
+                                                    <Image Source="{Binding PreviewBitmap}" x:Name="image" Margin="20">
+                                                        <!--<RenderOptions.BitmapInterpolationMode> TODO: Fix
+                                                            <MultiBinding Converter="{converters:WidthToBitmapScalingModeConverter}">
+                                                                <Binding Path="PreviewBitmap.PixelSize.Width"/>
+                                                                <Binding ElementName="image" Path="Width"/>
+                                                            </MultiBinding>
+                                                        </RenderOptions.BitmapInterpolationMode>-->
+                                                    </Image>
+                                                    <Border Grid.Row="1" Height="8" Width="8" x:Name="extensionBorder" Margin="5"
+                                                            Background="{Binding FileExtension, Converter={converters:FileExtensionToColorConverter}}" 
+                                                            VerticalAlignment="Bottom" HorizontalAlignment="Right">
+                                                        <!--<Border.Style>
+                                                            <Style TargetType="Border">
                                                                 <Style.Triggers>
+                                                                    <Trigger Property="IsMouseOver" Value="False">
+                                                                        <Setter Property="CornerRadius" Value="2"/>
+                                                                    </Trigger>
                                                                     <DataTrigger Binding="{Binding IsMouseOver, ElementName=fileButton}" Value="True">
                                                                         <DataTrigger.EnterActions>
-                                                                            <BeginStoryboard Name="start">
-                                                                                <Storyboard BeginTime="0:0:.2">
-                                                                                    <DoubleAnimation Storyboard.TargetProperty="Opacity" By="0" To="1" Duration="0:0:.4">
+                                                                            <BeginStoryboard Name="open">
+                                                                                <Storyboard BeginTime="0:0:.1">
+                                                                                    <DoubleAnimation Storyboard.TargetProperty="Height" By="8" To="70" BeginTime="0:0:.1" Duration="0:0:.3">
+                                                                                        <DoubleAnimation.EasingFunction>
+                                                                                            <ExponentialEase/>
+                                                                                        </DoubleAnimation.EasingFunction>
+                                                                                    </DoubleAnimation>
+                                                                                    <DoubleAnimation Storyboard.TargetProperty="Width" By="8" To="100" Duration="0:0:.1">
                                                                                         <DoubleAnimation.EasingFunction>
-                                                                                            <PowerEase/>
+                                                                                            <ExponentialEase/>
                                                                                         </DoubleAnimation.EasingFunction>
                                                                                     </DoubleAnimation>
+                                                                                    <ThicknessAnimation Storyboard.TargetProperty="Margin" By="5" To="0" BeginTime="0:0:.1" Duration="0:0:.25">
+                                                                                        <ThicknessAnimation.EasingFunction>
+                                                                                            <ExponentialEase/>
+                                                                                        </ThicknessAnimation.EasingFunction>
+                                                                                    </ThicknessAnimation>
                                                                                 </Storyboard>
                                                                             </BeginStoryboard>
                                                                         </DataTrigger.EnterActions>
                                                                         <DataTrigger.ExitActions>
-                                                                            <RemoveStoryboard BeginStoryboardName="start"/>
+                                                                            <BeginStoryboard Name="close">
+                                                                                <Storyboard>
+                                                                                    <DoubleAnimation Storyboard.TargetProperty="Height" By="70" To="8"  Duration="0:0:.2">
+                                                                                        <DoubleAnimation.EasingFunction>
+                                                                                            <ExponentialEase/>
+                                                                                        </DoubleAnimation.EasingFunction>
+                                                                                    </DoubleAnimation>
+                                                                                    <DoubleAnimation Storyboard.TargetProperty="Width" By="100" To="8" BeginTime="0:0:.2" Duration="0:0:.1">
+                                                                                        <DoubleAnimation.EasingFunction>
+                                                                                            <ExponentialEase/>
+                                                                                        </DoubleAnimation.EasingFunction>
+                                                                                    </DoubleAnimation>
+                                                                                    <ThicknessAnimation Storyboard.TargetProperty="Margin" By="0" To="5" Duration="0:0:.1">
+                                                                                        <ThicknessAnimation.EasingFunction>
+                                                                                            <ExponentialEase/>
+                                                                                        </ThicknessAnimation.EasingFunction>
+                                                                                    </ThicknessAnimation>
+                                                                                </Storyboard>
+                                                                            </BeginStoryboard>
                                                                         </DataTrigger.ExitActions>
+                                                                        <Setter Property="CornerRadius" Value="0,0,4,4"/>
                                                                     </DataTrigger>
                                                                 </Style.Triggers>
                                                             </Style>
-                                                        </Grid.Style>-->
-                                                        <TextBlock x:Name="extension" VerticalAlignment="Top" Text="{Binding FileExtension}" FontSize="15" TextAlignment="Center"/>
-                                                        <StackPanel Orientation="Horizontal" VerticalAlignment="Bottom" HorizontalAlignment="Center">
-                                                            <StackPanel.Styles>
-                                                                <Style Selector="Button">
-                                                                    <Setter Property="Margin" Value="0,0,0,5"/>
-                                                                    <Setter Property="Width" Value="25"/>
-                                                                    <Setter Property="Height" Value="25"/>
-                                                                    <Setter Property="MinWidth" Value="25"/>
-                                                                    <Setter Property="MinHeight" Value="25"/>
-                                                                    <Setter Property="Background" Value="Transparent"/>
-                                                                    </Style>
-                                                                  <Style Selector="Button:hover">
-                                                                      <Setter Property="Background" Value="#70FFFFFF"/>
-                                                                  </Style>
-                                                            </StackPanel.Styles>
-                                                            <Button Command="{Binding DataContext.OpenInExplorerCommand, RelativeSource={RelativeSource AncestorType=panels:AlignableWrapPanel}}"
-                                                                    CommandParameter="{Binding FilePath}"
-                                                                    ToolTip.Tip="Open in File Explorer">
-                                                                <TextBlock Text="&#xEC50;" FontFamily="Segoe MDL2 Assets"
-                                                                           TextAlignment="Center" FontSize="18"/>
-                                                            </Button>
-                                                            <Button Command="{xaml:Command Name=PixiEditor.File.RemoveRecent, UseProvided=True}"
-                                                                    CommandParameter="{Binding FilePath}"
-                                                                    ToolTip.Tip="Remove from list">
-                                                                <TextBlock Text="" FontFamily="{DynamicResource Feather}"
-                                                                           TextAlignment="Center" FontSize="20"/>
-                                                            </Button>
-                                                        </StackPanel>
-                                                    </Grid>
-                                                </Border>
-                                            </Grid>
-                                        </Button>
-
-                                        <TextBlock Text="{Binding FileName}" ToolTip.Tip="{Binding FilePath}"
-                                                   Width="110" TextAlignment="Center" TextTrimming="CharacterEllipsis"
-                                                   FontSize="18" Margin="10,10,10,2" HorizontalAlignment="Center" Foreground="White"/>
-                                    </StackPanel>
-                                </Grid>
-                            </DataTemplate>
-                        </ItemsControl.ItemTemplate>
-                        <ItemsControl.ItemsPanel>
-                            <ItemsPanelTemplate>
-                                <panels:AlignableWrapPanel HorizontalAlignment="Center" HorizontalContentAlignment="Center"/>
-                            </ItemsPanelTemplate>
-                        </ItemsControl.ItemsPanel>
-                    </ItemsControl>
-                </StackPanel>
+                                                        </Border.Style>-->
+                                                        <Grid HorizontalAlignment="Center" Margin="0,10,0,0" Opacity="0">
+                                                            <!--<Grid.Style>
+                                                                <Style TargetType="Grid">
+                                                                    <Style.Triggers>
+                                                                        <DataTrigger Binding="{Binding IsMouseOver, ElementName=fileButton}" Value="True">
+                                                                            <DataTrigger.EnterActions>
+                                                                                <BeginStoryboard Name="start">
+                                                                                    <Storyboard BeginTime="0:0:.2">
+                                                                                        <DoubleAnimation Storyboard.TargetProperty="Opacity" By="0" To="1" Duration="0:0:.4">
+                                                                                            <DoubleAnimation.EasingFunction>
+                                                                                                <PowerEase/>
+                                                                                            </DoubleAnimation.EasingFunction>
+                                                                                        </DoubleAnimation>
+                                                                                    </Storyboard>
+                                                                                </BeginStoryboard>
+                                                                            </DataTrigger.EnterActions>
+                                                                            <DataTrigger.ExitActions>
+                                                                                <RemoveStoryboard BeginStoryboardName="start"/>
+                                                                            </DataTrigger.ExitActions>
+                                                                        </DataTrigger>
+                                                                    </Style.Triggers>
+                                                                </Style>
+                                                            </Grid.Style>-->
+                                                            <TextBlock x:Name="extension" VerticalAlignment="Top" Text="{Binding FileExtension}" FontSize="15" TextAlignment="Center"/>
+                                                            <StackPanel Orientation="Horizontal" VerticalAlignment="Bottom" HorizontalAlignment="Center">
+                                                                <StackPanel.Styles>
+                                                                    <Style Selector="Button">
+                                                                        <Setter Property="Margin" Value="0,0,0,5"/>
+                                                                        <Setter Property="Width" Value="25"/>
+                                                                        <Setter Property="Height" Value="25"/>
+                                                                        <Setter Property="MinWidth" Value="25"/>
+                                                                        <Setter Property="MinHeight" Value="25"/>
+                                                                        <Setter Property="Background" Value="Transparent"/>
+                                                                        </Style>
+                                                                      <Style Selector="Button:hover">
+                                                                          <Setter Property="Background" Value="#70FFFFFF"/>
+                                                                      </Style>
+                                                                </StackPanel.Styles>
+                                                                <Button Command="{Binding DataContext.OpenInExplorerCommand, RelativeSource={RelativeSource AncestorType=panels:AlignableWrapPanel}}"
+                                                                        CommandParameter="{Binding FilePath}"
+                                                                        ToolTip.Tip="Open in File Explorer">
+                                                                    <TextBlock Text="&#xEC50;" FontFamily="Segoe MDL2 Assets"
+                                                                               TextAlignment="Center" FontSize="18"/>
+                                                                </Button>
+                                                                <Button Command="{xaml:Command Name=PixiEditor.File.RemoveRecent, UseProvided=True}"
+                                                                        CommandParameter="{Binding FilePath}"
+                                                                        ToolTip.Tip="Remove from list">
+                                                                    <TextBlock Text="" FontFamily="{DynamicResource Feather}"
+                                                                               TextAlignment="Center" FontSize="20"/>
+                                                                </Button>
+                                                            </StackPanel>
+                                                        </Grid>
+                                                    </Border>
+                                                </Grid>
+                                            </Button>
 
-                <panels:AlignableWrapPanel Grid.Row="3" HorizontalContentAlignment="Center" HorizontalAlignment="Center" Margin="0,5,0,15">
-                    <Button Command="{xaml:Command PixiEditor.Links.OpenHyperlink, UseProvided=True}" CommandParameter="https://pixieditor.net"
-                            ui:Translator.TooltipKey="WEBSITE"
-                            Classes="SocialMediaButton" Tag="#e3002d"
-                            Content="/Images/SocialMedia/WebsiteIcon.png"/>
-                    <Button Command="{xaml:Command PixiEditor.Links.OpenHyperlink, UseProvided=True}" CommandParameter="https://discord.gg/tzkQFDkqQS"
-                            Classes="SocialMediaButton" Tag="#5865F2" ui:Translator.TooltipKey="DISCORD"
-                            Content="/Images/SocialMedia/DiscordIcon.png"/>
-                    <Button Command="{xaml:Command PixiEditor.Links.OpenHyperlink, UseProvided=True}" CommandParameter="https://reddit.com/r/PixiEditor"
-                            Classes="SocialMediaButton" Tag="#FF4500" ui:Translator.TooltipKey="REDDIT"
-                            Content="/Images/SocialMedia/RedditIcon.png"/>
-                    <Button Command="{xaml:Command PixiEditor.Links.OpenHyperlink, UseProvided=True}" CommandParameter="https://store.steampowered.com/app/2218560"
-                            Classes="SocialMediaButton" Tag="#00adee" ui:Translator.TooltipKey="STEAM"
-                            Content="/Images/SocialMedia/SteamIcon.png"/>
-                    <Button Command="{xaml:Command PixiEditor.Links.OpenHyperlink, UseProvided=True}" CommandParameter="https://github.com/PixiEditor/PixiEditor"
-                            Classes="SocialMediaButton" Tag="Black" ui:Translator.TooltipKey="GITHUB"
-                            Content="/Images/SocialMedia/GithubIcon.png"/>
-                    <Button Command="{xaml:Command PixiEditor.Links.OpenHyperlink, UseProvided=True}" CommandParameter="https://www.youtube.com/channel/UCT5XvyvX1q5PAIaXfWmpsMQ"
-                            Classes="SocialMediaButton" Tag="#FF0000" ui:Translator.TooltipKey="YOUTUBE"
-                            Content="/Images/SocialMedia/YouTubeIcon.png"/>
-                    <Button Command="{xaml:Command PixiEditor.Links.OpenHyperlink, UseProvided=True}"
-                            IsVisible="{Binding ShowDonateButton}"
-                            CommandParameter="https://opencollective.com/pixieditor"
-                            Classes="SocialMediaButton" Tag="#d4af37" ui:Translator.TooltipKey="DONATE"
-                            Content="/Images/SocialMedia/DonateIcon.png"/>
-                    <Button Command="{xaml:Command PixiEditor.Links.OpenHyperlink, UseProvided=True}"
-                            IsVisible="{Binding !ShowDonateButton}"
-                            CommandParameter="https://store.steampowered.com/app/2435860/PixiEditor__Supporter_Pack/"
-                            Classes="SocialMediaButton" Tag="#d4af37" ui:Translator.TooltipKey="BUY_SUPPORTER_PACK"
-                            Content="/Images/SocialMedia/DonateIcon.png"/>
-                </panels:AlignableWrapPanel>
-            </Grid>
-        </ScrollViewer>
-
-        <ScrollViewer Grid.Row="1" Grid.Column="1"
-                      IsVisible="{Binding !NewsPanelCollapsed}">
-            <Border Padding="5" BorderThickness="3 0 0 0" BorderBrush="{StaticResource ThemeBackgroundBrush}">
-                <Grid>
-                    <indicators1:LoadingIndicator IsVisible="{Binding IsFetchingNews}"/>
-                    <TextBlock ui:Translator.Key="FAILED_FETCH_NEWS" Foreground="White" FontSize="20"
-                               VerticalAlignment="Center" TextAlignment="Center"
-                               IsVisible="{Binding Path=FailedFetchingNews}"/>
-                    <StackPanel Orientation="Vertical" IsVisible="{Binding !IsFetchingNews}">
-                        <TextBlock HorizontalAlignment="Center" ui:Translator.Key="NEWS" FontSize="18"/>
-                        <ItemsControl ItemsSource="{Binding Path=News}">
-                            <ItemsControl.ItemTemplate>
-                                <DataTemplate>
-                                    <newsFeed1:NewsItem Margin="5" News="{Binding Path=.}"/>
+                                            <TextBlock Text="{Binding FileName}" ToolTip.Tip="{Binding FilePath}"
+                                                       Width="110" TextAlignment="Center" TextTrimming="CharacterEllipsis"
+                                                       FontSize="18" Margin="10,10,10,2" HorizontalAlignment="Center" Foreground="White"/>
+                                        </StackPanel>
+                                    </Grid>
                                 </DataTemplate>
                             </ItemsControl.ItemTemplate>
+                            <ItemsControl.ItemsPanel>
+                                <ItemsPanelTemplate>
+                                    <panels:AlignableWrapPanel HorizontalAlignment="Center" HorizontalContentAlignment="Center"/>
+                                </ItemsPanelTemplate>
+                            </ItemsControl.ItemsPanel>
                         </ItemsControl>
                     </StackPanel>
+
+                    <panels:AlignableWrapPanel Grid.Row="3" HorizontalContentAlignment="Center" HorizontalAlignment="Center" Margin="0,5,0,15">
+                        <Button Command="{xaml:Command PixiEditor.Links.OpenHyperlink, UseProvided=True}" CommandParameter="https://pixieditor.net"
+                                ui:Translator.TooltipKey="WEBSITE"
+                                Classes="SocialMediaButton" Tag="#e3002d"
+                                Content="/Images/SocialMedia/WebsiteIcon.png"/>
+                        <Button Command="{xaml:Command PixiEditor.Links.OpenHyperlink, UseProvided=True}" CommandParameter="https://discord.gg/tzkQFDkqQS"
+                                Classes="SocialMediaButton" Tag="#5865F2" ui:Translator.TooltipKey="DISCORD"
+                                Content="/Images/SocialMedia/DiscordIcon.png"/>
+                        <Button Command="{xaml:Command PixiEditor.Links.OpenHyperlink, UseProvided=True}" CommandParameter="https://reddit.com/r/PixiEditor"
+                                Classes="SocialMediaButton" Tag="#FF4500" ui:Translator.TooltipKey="REDDIT"
+                                Content="/Images/SocialMedia/RedditIcon.png"/>
+                        <Button Command="{xaml:Command PixiEditor.Links.OpenHyperlink, UseProvided=True}" CommandParameter="https://store.steampowered.com/app/2218560"
+                                Classes="SocialMediaButton" Tag="#00adee" ui:Translator.TooltipKey="STEAM"
+                                Content="/Images/SocialMedia/SteamIcon.png"/>
+                        <Button Command="{xaml:Command PixiEditor.Links.OpenHyperlink, UseProvided=True}" CommandParameter="https://github.com/PixiEditor/PixiEditor"
+                                Classes="SocialMediaButton" Tag="Black" ui:Translator.TooltipKey="GITHUB"
+                                Content="/Images/SocialMedia/GithubIcon.png"/>
+                        <Button Command="{xaml:Command PixiEditor.Links.OpenHyperlink, UseProvided=True}" CommandParameter="https://www.youtube.com/channel/UCT5XvyvX1q5PAIaXfWmpsMQ"
+                                Classes="SocialMediaButton" Tag="#FF0000" ui:Translator.TooltipKey="YOUTUBE"
+                                Content="/Images/SocialMedia/YouTubeIcon.png"/>
+                        <Button Command="{xaml:Command PixiEditor.Links.OpenHyperlink, UseProvided=True}"
+                                IsVisible="{Binding ShowDonateButton}"
+                                CommandParameter="https://opencollective.com/pixieditor"
+                                Classes="SocialMediaButton" Tag="#d4af37" ui:Translator.TooltipKey="DONATE"
+                                Content="/Images/SocialMedia/DonateIcon.png"/>
+                        <Button Command="{xaml:Command PixiEditor.Links.OpenHyperlink, UseProvided=True}"
+                                IsVisible="{Binding !ShowDonateButton}"
+                                CommandParameter="https://store.steampowered.com/app/2435860/PixiEditor__Supporter_Pack/"
+                                Classes="SocialMediaButton" Tag="#d4af37" ui:Translator.TooltipKey="BUY_SUPPORTER_PACK"
+                                Content="/Images/SocialMedia/DonateIcon.png"/>
+                    </panels:AlignableWrapPanel>
                 </Grid>
-            </Border>
-        </ScrollViewer>
-    </Grid>
+            </ScrollViewer>
+
+            <ScrollViewer Grid.Row="1" Grid.Column="1"
+                          IsVisible="{Binding !NewsPanelCollapsed}">
+                <Border Padding="5" BorderThickness="3 0 0 0" BorderBrush="{StaticResource ThemeBackgroundBrush}">
+                    <Grid>
+                        <indicators1:LoadingIndicator IsVisible="{Binding IsFetchingNews}"/>
+                        <TextBlock ui:Translator.Key="FAILED_FETCH_NEWS" Foreground="White" FontSize="20"
+                                   VerticalAlignment="Center" TextAlignment="Center"
+                                   IsVisible="{Binding Path=FailedFetchingNews}"/>
+                        <StackPanel Orientation="Vertical" IsVisible="{Binding !IsFetchingNews}">
+                            <TextBlock HorizontalAlignment="Center" ui:Translator.Key="NEWS" FontSize="18"/>
+                            <ItemsControl ItemsSource="{Binding Path=News}">
+                                <ItemsControl.ItemTemplate>
+                                    <DataTemplate>
+                                        <newsFeed1:NewsItem Margin="5" News="{Binding Path=.}"/>
+                                    </DataTemplate>
+                                </ItemsControl.ItemTemplate>
+                            </ItemsControl>
+                        </StackPanel>
+                    </Grid>
+                </Border>
+            </ScrollViewer>
+        </Grid>
+    </DockPanel>
 </Window>

+ 205 - 218
src/PixiEditor.AvaloniaUI/Views/Windows/Settings/SettingsWindow.axaml

@@ -23,9 +23,7 @@
     Width="780" Height="688"
     MinWidth="665" MinHeight="500"
     DataContext="{DynamicResource SettingsWindowViewModel}"
-    WindowStartupLocation="CenterScreen"
     BorderBrush="Black" BorderThickness="1"
-    Background="{DynamicResource ThemeAccent2Color}"
     FlowDirection="{markupExtensions:Localization FlowDirection}"
     ui:Translator.Key="SETTINGS">
 
@@ -33,245 +31,234 @@
         <vm:SettingsWindowViewModel x:Key="SettingsWindowViewModel"/>
     </Window.Resources>
 
-    <!-- TODO
-    <WindowChrome.WindowChrome>
-        <WindowChrome CaptionHeight="32"  GlassFrameThickness="0.1"
-                      ResizeBorderThickness="{x:Static SystemParameters.WindowResizeBorderThickness}" />
-    </WindowChrome.WindowChrome>
+    <DockPanel>
+        <dialogs:DialogTitleBar 
+            DockPanel.Dock="Top"
+            TitleKey="SETTINGS"/>
+        <DockPanel Focusable="True" Background="{DynamicResource ThemeBackgroundBrush}">
+            <i:Interaction.Behaviors>
+                <behaviours:ClearFocusOnClickBehavior/>
+            </i:Interaction.Behaviors>
+            
+            <ListBox DockPanel.Dock="Left" x:Name="pages" ItemsSource="{Binding Pages}"
+                     Margin="0, 8"
+                     Background="{DynamicResource ThemeBackgroundBrush}" 
+                     MinWidth="165"
+                     SelectedIndex="{Binding CurrentPage}">
+                <ListBox.ItemTemplate>
+                    <DataTemplate>
+                        <TextBlock Classes="h5" Foreground="{DynamicResource ThemeForegroundLowBrush}" Text="{Binding Path=Name.Value}" VerticalAlignment="Center">
+                            <TextBlock.Styles>
+                                <Style Selector="ListBoxItem:selected TextBlock">
+                                    <Setter Property="Foreground" Value="{DynamicResource ThemeForegroundBrush}" />
+                                </Style>
+                            </TextBlock.Styles>
+                        </TextBlock>
+                    </DataTemplate>
+                </ListBox.ItemTemplate>
+            </ListBox>
+            <Border Background="{DynamicResource ThemeBackgroundColor1}" CornerRadius="8" Margin="0, 8, 8, 8">
+                <Grid>
+                    <Grid.Styles>
+                        <Style Selector=":is(Control).leftOffset">
+                            <Setter Property="Margin" Value="20, 0, 0, 0"/>
+                        </Style>
+                    </Grid.Styles>
+                    <!--Background="{StaticResource AccentColor}"-->
+                    <controls:FixedSizeStackPanel Orientation="Vertical" ChildSize="32" VerticalChildrenAlignment="Center" Margin="12">
+                        <controls:FixedSizeStackPanel.IsVisible>
+                            <Binding Path="CurrentPage" Converter="{converters:IsEqualConverter}">
+                                <Binding.ConverterParameter>
+                                    <sys:Int32>0</sys:Int32>
+                                </Binding.ConverterParameter>
+                            </Binding>
+                        </controls:FixedSizeStackPanel.IsVisible>
+                        
+                        <TextBlock ui:Translator.Key="LANGUAGE" Classes="h5"/>
+                        <ComboBox Classes="leftOffset" Width="200" HorizontalAlignment="Left"
+                                  ItemsSource="{Binding SettingsSubViewModel.General.AvailableLanguages}"
+                                  SelectedItem="{Binding SettingsSubViewModel.General.SelectedLanguage, Mode=TwoWay}">
+                            <ComboBox.ItemTemplate>
+                                <DataTemplate>
+                                    <StackPanel Orientation="Horizontal" Height="20">
+                                        <Image
+                                            MaxHeight="20"
+                                            Margin="3, 0"
+                                            VerticalAlignment="Center"
+                                            Source="{Binding IconFullPath, Converter={converters:ImagePathToBitmapConverter}}" />
+                                        <TextBlock VerticalAlignment="Center" Text="{Binding Name}"/>
+                                    </StackPanel>
+                                </DataTemplate>
+                            </ComboBox.ItemTemplate>
+                        </ComboBox>
 
-    <Window.CommandBindings>
-        <CommandBinding Command="{x:Static SystemCommands.CloseWindowCommand}" CanExecute="CommandBinding_CanExecute"
-                        Executed="CommandBinding_Executed_Close" />
-    </Window.CommandBindings>
-    -->
+                        <TextBlock ui:Translator.Key="MISC" Classes="h5"/>
 
-    <DockPanel Focusable="True" Background="{DynamicResource ThemeBackgroundBrush}">
-        <!--Background="{StaticResource MainColor}"-->
-        <i:Interaction.Behaviors>
-            <behaviours:ClearFocusOnClickBehavior/>
-        </i:Interaction.Behaviors>
+                        <CheckBox Classes="leftOffset" ui:Translator.Key="SHOW_STARTUP_WINDOW"
+                                  IsChecked="{Binding SettingsSubViewModel.File.ShowStartupWindow}"/>
 
-        <dialogs:DialogTitleBar DockPanel.Dock="Top"
-            TitleKey="SETTINGS" CloseCommand="{x:Static vm:SystemCommands.CloseWindowCommand}"/>
+                        <CheckBox Classes="leftOffset" ui:Translator.Key="DISABLE_NEWS_PANEL"
+                                  IsChecked="{Binding SettingsSubViewModel.File.DisableNewsPanel}"/>
 
-        <ListBox DockPanel.Dock="Left" x:Name="pages" ItemsSource="{Binding Pages}"
-                 Margin="0, 8"
-                 Background="{DynamicResource ThemeBackgroundBrush}" 
-                 MinWidth="165"
-                 SelectedIndex="{Binding CurrentPage}">
-            <ListBox.ItemTemplate>
-                <DataTemplate>
-                    <TextBlock Classes="h5" Foreground="{DynamicResource ThemeForegroundLowBrush}" Text="{Binding Path=Name.Value}" VerticalAlignment="Center">
-                        <TextBlock.Styles>
-                            <Style Selector="ListBoxItem:selected TextBlock">
-                                <Setter Property="Foreground" Value="{DynamicResource ThemeForegroundBrush}" />
-                            </Style>
-                        </TextBlock.Styles>
-                    </TextBlock>
-                </DataTemplate>
-            </ListBox.ItemTemplate>
-        </ListBox>
-        <Border Background="{DynamicResource ThemeBackgroundColor1}" CornerRadius="8" Margin="0, 8, 8, 8">
-            <Grid>
-                <Grid.Styles>
-                    <Style Selector=":is(Control).leftOffset">
-                        <Setter Property="Margin" Value="20, 0, 0, 0"/>
-                    </Style>
-                </Grid.Styles>
-                <!--Background="{StaticResource AccentColor}"-->
-                <controls:FixedSizeStackPanel Orientation="Vertical" ChildSize="32" VerticalChildrenAlignment="Center" Margin="12">
-                    <controls:FixedSizeStackPanel.IsVisible>
-                        <Binding Path="CurrentPage" Converter="{converters:IsEqualConverter}">
-                            <Binding.ConverterParameter>
-                                <sys:Int32>0</sys:Int32>
-                            </Binding.ConverterParameter>
-                        </Binding>
-                    </controls:FixedSizeStackPanel.IsVisible>
-                    
-                    <TextBlock ui:Translator.Key="LANGUAGE" Classes="h5"/>
-                    <ComboBox Classes="leftOffset" Width="200" HorizontalAlignment="Left"
-                              ItemsSource="{Binding SettingsSubViewModel.General.AvailableLanguages}"
-                              SelectedItem="{Binding SettingsSubViewModel.General.SelectedLanguage, Mode=TwoWay}">
-                        <ComboBox.ItemTemplate>
-                            <DataTemplate>
-                                <StackPanel Orientation="Horizontal" Height="20">
-                                    <Image
-                                        MaxHeight="20"
-                                        Margin="3, 0"
-                                        VerticalAlignment="Center"
-                                        Source="{Binding IconFullPath, Converter={converters:ImagePathToBitmapConverter}}" />
-                                    <TextBlock VerticalAlignment="Center" Text="{Binding Name}"/>
-                                </StackPanel>
-                            </DataTemplate>
-                        </ComboBox.ItemTemplate>
-                    </ComboBox>
+                        <CheckBox Classes="leftOffset" ui:Translator.Key="SHOW_IMAGE_PREVIEW_TASKBAR"
+                                  IsChecked="{Binding SettingsSubViewModel.General.ImagePreviewInTaskbar}"/>
 
-                    <TextBlock ui:Translator.Key="MISC" Classes="h5"/>
-
-                    <CheckBox Classes="leftOffset" ui:Translator.Key="SHOW_STARTUP_WINDOW"
-                              IsChecked="{Binding SettingsSubViewModel.File.ShowStartupWindow}"/>
-
-                    <CheckBox Classes="leftOffset" ui:Translator.Key="DISABLE_NEWS_PANEL"
-                              IsChecked="{Binding SettingsSubViewModel.File.DisableNewsPanel}"/>
-
-                    <CheckBox Classes="leftOffset" ui:Translator.Key="SHOW_IMAGE_PREVIEW_TASKBAR"
-                              IsChecked="{Binding SettingsSubViewModel.General.ImagePreviewInTaskbar}"/>
-
-                    <StackPanel Classes="leftOffset" Orientation="Horizontal">
-                        <Label
-                            ui:Translator.Key="RECENT_FILE_LENGTH"
-                            ui:Translator.TooltipKey="RECENT_FILE_LENGTH_TOOLTIP"/>
-                        <input:NumberInput Min="0" FontSize="12" HorizontalAlignment="Left"
-                                       Value="{Binding SettingsSubViewModel.File.MaxOpenedRecently, Mode=TwoWay}" Width="40"/>
-                    </StackPanel>
+                        <StackPanel Classes="leftOffset" Orientation="Horizontal">
+                            <Label
+                                ui:Translator.Key="RECENT_FILE_LENGTH"
+                                ui:Translator.TooltipKey="RECENT_FILE_LENGTH_TOOLTIP"/>
+                            <input:NumberInput Min="0" FontSize="12" HorizontalAlignment="Left"
+                                           Value="{Binding SettingsSubViewModel.File.MaxOpenedRecently, Mode=TwoWay}" Width="40"/>
+                        </StackPanel>
 
-                    <TextBlock
-                        Classes="h5"
-                        d:Content="Default new file size"
-                        ui:Translator.Key="DEFAULT_NEW_SIZE"/>
+                        <TextBlock
+                            Classes="h5"
+                            d:Content="Default new file size"
+                            ui:Translator.Key="DEFAULT_NEW_SIZE"/>
 
-                    <StackPanel Orientation="Horizontal"  Classes="leftOffset">
-                        <Label d:Content="Width" ui:Translator.Key="WIDTH"/>
-                        <input:SizeInput
-                                     Size="{Binding SettingsSubViewModel.File.DefaultNewFileWidth, Mode=TwoWay}" MaxSize="9999" HorizontalAlignment="Left"/>
-                    </StackPanel>
+                        <StackPanel Orientation="Horizontal"  Classes="leftOffset">
+                            <Label d:Content="Width" ui:Translator.Key="WIDTH"/>
+                            <input:SizeInput
+                                         Size="{Binding SettingsSubViewModel.File.DefaultNewFileWidth, Mode=TwoWay}" MaxSize="9999" HorizontalAlignment="Left"/>
+                        </StackPanel>
 
-                    <StackPanel Orientation="Horizontal" Classes="leftOffset">
-                        <Label d:Content="Height" ui:Translator.Key="HEIGHT"/>
-                        <input:SizeInput
-                                     Size="{Binding SettingsSubViewModel.File.DefaultNewFileHeight, Mode=TwoWay}" MaxSize="9999" HorizontalAlignment="Left"/>
-                    </StackPanel>
+                        <StackPanel Orientation="Horizontal" Classes="leftOffset">
+                            <Label d:Content="Height" ui:Translator.Key="HEIGHT"/>
+                            <input:SizeInput
+                                         Size="{Binding SettingsSubViewModel.File.DefaultNewFileHeight, Mode=TwoWay}" MaxSize="9999" HorizontalAlignment="Left"/>
+                        </StackPanel>
 
-                    <TextBlock d:Content="Tools" ui:Translator.Key="TOOLS" Classes="h5" />
+                        <TextBlock d:Content="Tools" ui:Translator.Key="TOOLS" Classes="h5" />
 
-                    <StackPanel Orientation="Horizontal" Classes="leftOffset">
-                        <Label Target="rightClickModeComboBox" ui:Translator.Key="RIGHT_CLICK_MODE" VerticalAlignment="Center"/>
-                        <ComboBox SelectedItem="{Binding RightClickMode, Source={vm:MainVM ToolsSVM}, Mode=TwoWay}"
-                                  Name="rightClickModeComboBox"
-                                  ItemsSource="{markupExtensions:Enum preferences:RightClickMode}"
-                                  Width="160"
-                                  VerticalAlignment="Center"/>
-                        <!--Styles="{StaticResource TranslatedEnum}"-->
-                    </StackPanel>
+                        <StackPanel Orientation="Horizontal" Classes="leftOffset">
+                            <Label Target="rightClickModeComboBox" ui:Translator.Key="RIGHT_CLICK_MODE" VerticalAlignment="Center"/>
+                            <ComboBox SelectedItem="{Binding RightClickMode, Source={vm:MainVM ToolsSVM}, Mode=TwoWay}"
+                                      Name="rightClickModeComboBox"
+                                      ItemsSource="{markupExtensions:Enum preferences:RightClickMode}"
+                                      Width="160"
+                                      VerticalAlignment="Center"/>
+                            <!--Styles="{StaticResource TranslatedEnum}"-->
+                        </StackPanel>
 
-                    <CheckBox Classes="leftOffset"
-                              IsChecked="{Binding SettingsSubViewModel.Tools.EnableSharedToolbar}"
-                              ui:Translator.Key="ENABLE_SHARED_TOOLBAR"/>
+                        <CheckBox Classes="leftOffset"
+                                  IsChecked="{Binding SettingsSubViewModel.Tools.EnableSharedToolbar}"
+                                  ui:Translator.Key="ENABLE_SHARED_TOOLBAR"/>
 
-                    <TextBlock ui:Translator.Key="AUTOMATIC_UPDATES" Classes="h5"/>
+                        <TextBlock ui:Translator.Key="AUTOMATIC_UPDATES" Classes="h5"/>
 
-                    <CheckBox
-                        VerticalAlignment="Center"
-                        IsEnabled="{Binding Path=ShowUpdateTab}"
-                        IsChecked="{Binding SettingsSubViewModel.Update.CheckUpdatesOnStartup}"
-                        ui:Translator.Key="CHECK_FOR_UPDATES"
-                        Classes="leftOffset"/>
+                        <CheckBox
+                            VerticalAlignment="Center"
+                            IsEnabled="{Binding Path=ShowUpdateTab}"
+                            IsChecked="{Binding SettingsSubViewModel.Update.CheckUpdatesOnStartup}"
+                            ui:Translator.Key="CHECK_FOR_UPDATES"
+                            Classes="leftOffset"/>
 
-                    <StackPanel Orientation="Horizontal" Classes="leftOffset">
-                        <Label Target="updateStreamComboBox" ui:Translator.Key="UPDATE_STREAM" VerticalAlignment="Center"/>
-                        <StackPanel Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Left">
-                            <ComboBox Width="110"
-                                      Name="updateStreamComboBox"
-                                      VerticalAlignment="Center"
-                                      IsEnabled="{Binding Path=ShowUpdateTab}"
-                                      ItemsSource="{Binding SettingsSubViewModel.Update.UpdateChannels}"
-                                      SelectedValue="{Binding SettingsSubViewModel.Update.UpdateChannelName}"/>
-                            <Image Cursor="Help" Source="/Images/Commands/PixiEditor/Links/OpenDocumentation.png"
-                                   VerticalAlignment="Center"
-                                   IsVisible="{Binding !ShowUpdateTab}"
-                                   ui:Translator.TooltipKey="UPDATE_CHANNEL_HELP_TOOLTIP"/>
-                            <!-- ToolTipService.InitialShowDelay="0"-->
+                        <StackPanel Orientation="Horizontal" Classes="leftOffset">
+                            <Label Target="updateStreamComboBox" ui:Translator.Key="UPDATE_STREAM" VerticalAlignment="Center"/>
+                            <StackPanel Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Left">
+                                <ComboBox Width="110"
+                                          Name="updateStreamComboBox"
+                                          VerticalAlignment="Center"
+                                          IsEnabled="{Binding Path=ShowUpdateTab}"
+                                          ItemsSource="{Binding SettingsSubViewModel.Update.UpdateChannels}"
+                                          SelectedValue="{Binding SettingsSubViewModel.Update.UpdateChannelName}"/>
+                                <Image Cursor="Help" Source="/Images/Commands/PixiEditor/Links/OpenDocumentation.png"
+                                       VerticalAlignment="Center"
+                                       IsVisible="{Binding !ShowUpdateTab}"
+                                       ui:Translator.TooltipKey="UPDATE_CHANNEL_HELP_TOOLTIP"/>
+                                <!-- ToolTipService.InitialShowDelay="0"-->
+                            </StackPanel>
                         </StackPanel>
-                    </StackPanel>
-
-                    <TextBlock ui:Translator.Key="DEBUG" Classes="h5"/>
-                    <CheckBox Classes="leftOffset"
-                        IsChecked="{Binding SettingsSubViewModel.General.IsDebugModeEnabled}" ui:Translator.Key="ENABLE_DEBUG_MODE" d:Content="Enable Debug Mode"/>
-                    <!--<Label Classes="{StaticResource SettingsText}" VerticalAlignment="Center">
-                        <ui1:Hyperlink Command="{cmds:Command PixiEditor.Debug.OpenCrashReportsDirectory}" Style="{StaticResource SettingsLink}">
-                            <Run ui:Translator.Key="OPEN_CRASH_REPORTS_DIR" d:Text="Open crash reports directory"/>
-                            <Run Text="" FontFamily="{StaticResource Feather}"/>
-                        </ui1:Hyperlink>
-                    </Label>-->
-                </controls:FixedSizeStackPanel>
 
-                <StackPanel Margin="12">
-                    <StackPanel.IsVisible>
-                        <Binding Path="CurrentPage" Converter="{converters:IsEqualConverter}">
-                            <Binding.ConverterParameter>
-                                <sys:Int32>1</sys:Int32>
-                            </Binding.ConverterParameter>
-                        </Binding>
-                    </StackPanel.IsVisible>
+                        <TextBlock ui:Translator.Key="DEBUG" Classes="h5"/>
+                        <CheckBox Classes="leftOffset"
+                            IsChecked="{Binding SettingsSubViewModel.General.IsDebugModeEnabled}" ui:Translator.Key="ENABLE_DEBUG_MODE" d:Content="Enable Debug Mode"/>
+                        <!--<Label Classes="{StaticResource SettingsText}" VerticalAlignment="Center">
+                            <ui1:Hyperlink Command="{cmds:Command PixiEditor.Debug.OpenCrashReportsDirectory}" Style="{StaticResource SettingsLink}">
+                                <Run ui:Translator.Key="OPEN_CRASH_REPORTS_DIR" d:Text="Open crash reports directory"/>
+                                <Run Text="" FontFamily="{StaticResource Feather}"/>
+                            </ui1:Hyperlink>
+                        </Label>-->
+                    </controls:FixedSizeStackPanel>
 
-                    <controls:FixedSizeStackPanel ChildSize="32" Orientation="Vertical" VerticalChildrenAlignment="Center">
-                        <TextBlock ui:Translator.Key="DISCORD_RICH_PRESENCE" Classes="h5"/>
+                    <StackPanel Margin="12">
+                        <StackPanel.IsVisible>
+                            <Binding Path="CurrentPage" Converter="{converters:IsEqualConverter}">
+                                <Binding.ConverterParameter>
+                                    <sys:Int32>1</sys:Int32>
+                                </Binding.ConverterParameter>
+                            </Binding>
+                        </StackPanel.IsVisible>
 
-                        <CheckBox IsChecked="{Binding SettingsSubViewModel.Discord.EnableRichPresence}"
-                                  ui:Translator.Key="ENABLED"/>
-                        <CheckBox IsEnabled="{Binding SettingsSubViewModel.Discord.EnableRichPresence}"
-                                  IsChecked="{Binding SettingsSubViewModel.Discord.ShowDocumentName}"
-                                  ui:Translator.Key="SHOW_IMAGE_NAME"/>
-                        <CheckBox IsEnabled="{Binding SettingsSubViewModel.Discord.EnableRichPresence}"
-                                  IsChecked="{Binding SettingsSubViewModel.Discord.ShowDocumentSize}"
-                                  ui:Translator.Key="SHOW_IMAGE_SIZE"/>
-                        <CheckBox IsEnabled="{Binding SettingsSubViewModel.Discord.EnableRichPresence}"
-                                  IsChecked="{Binding SettingsSubViewModel.Discord.ShowLayerCount}"
-                                  ui:Translator.Key="SHOW_LAYER_COUNT" d:Content="Show layer count"/>
-                    </controls:FixedSizeStackPanel>
+                        <controls:FixedSizeStackPanel ChildSize="32" Orientation="Vertical" VerticalChildrenAlignment="Center">
+                            <TextBlock ui:Translator.Key="DISCORD_RICH_PRESENCE" Classes="h5"/>
 
-                    <settings:DiscordRichPresencePreview
-                        HorizontalAlignment="Center"
-                        Width="280"
-                        State="{Binding SettingsSubViewModel.Discord.StatePreview}"
-                        Detail="{Binding SettingsSubViewModel.Discord.DetailPreview}"
-                        IsPlaying="{Binding SettingsSubViewModel.Discord.EnableRichPresence}"/>
-                </StackPanel>
+                            <CheckBox IsChecked="{Binding SettingsSubViewModel.Discord.EnableRichPresence}"
+                                      ui:Translator.Key="ENABLED"/>
+                            <CheckBox IsEnabled="{Binding SettingsSubViewModel.Discord.EnableRichPresence}"
+                                      IsChecked="{Binding SettingsSubViewModel.Discord.ShowDocumentName}"
+                                      ui:Translator.Key="SHOW_IMAGE_NAME"/>
+                            <CheckBox IsEnabled="{Binding SettingsSubViewModel.Discord.EnableRichPresence}"
+                                      IsChecked="{Binding SettingsSubViewModel.Discord.ShowDocumentSize}"
+                                      ui:Translator.Key="SHOW_IMAGE_SIZE"/>
+                            <CheckBox IsEnabled="{Binding SettingsSubViewModel.Discord.EnableRichPresence}"
+                                      IsChecked="{Binding SettingsSubViewModel.Discord.ShowLayerCount}"
+                                      ui:Translator.Key="SHOW_LAYER_COUNT" d:Content="Show layer count"/>
+                        </controls:FixedSizeStackPanel>
 
-                <Grid Margin="12" Height="{Binding ElementName=window, Path=Height, Converter={converters:SubtractConverter}, ConverterParameter=50}">
-                    <Grid.IsVisible>
-                        <Binding Path="CurrentPage" Converter="{converters:IsEqualConverter}">
-                            <Binding.ConverterParameter>
-                                <sys:Int32>2</sys:Int32>
-                            </Binding.ConverterParameter>
-                        </Binding>
-                    </Grid.IsVisible>
-                    <Grid.RowDefinitions>
-                        <RowDefinition Height="Auto"/>
-                        <RowDefinition Height="Auto"/>
-                        <RowDefinition/>
-                    </Grid.RowDefinitions>
-                    <StackPanel HorizontalAlignment="Center" Orientation="Horizontal">
-                        <!--<StackPanel.Resources>
-                            <Style TargetType="Button" BasedOn="{StaticResource DarkRoundButton}">
-                                <Setter Property="HorizontalAlignment" Value="Stretch"/>
-                                <Setter Property="MinWidth" Value="115"/>
-                                <Setter Property="Height" Value="Auto"/>
-                                <Setter Property="FontSize" Value="12"/>
-                                <Setter Property="Padding" Value="5"/>
-                            </Style>
-                        </StackPanel.Resources>-->
-                        <Button Command="{cmds:Command PixiEditor.Shortcuts.Export}"
-                                d:Content="Export" ui:Translator.Key="EXPORT"/>
-                        <Button Command="{cmds:Command PixiEditor.Shortcuts.Import}"
-                                d:Content="Import" ui:Translator.Key="IMPORT"/>
-                        <Button Command="{cmds:Command PixiEditor.Shortcuts.OpenTemplatePopup}"
-                                d:Content="Shortcut Templates" ui:Translator.Key="SHORTCUT_TEMPLATES"/>
-                        <Button Command="{cmds:Command PixiEditor.Shortcuts.Reset}"
-                                d:Content="Reset all" ui:Translator.Key="RESET_ALL"/>
+                        <settings:DiscordRichPresencePreview
+                            HorizontalAlignment="Center"
+                            Width="280"
+                            State="{Binding SettingsSubViewModel.Discord.StatePreview}"
+                            Detail="{Binding SettingsSubViewModel.Discord.DetailPreview}"
+                            IsPlaying="{Binding SettingsSubViewModel.Discord.EnableRichPresence}"/>
                     </StackPanel>
-                    <TextBox Grid.Row="1"
-                             Text="{Binding SearchTerm, Mode=TwoWay}">
-                        <!--Styles="{StaticResource DarkTextBoxStyle}"-->
-                        <i:Interaction.Behaviors>
-                            <behaviours:GlobalShortcutFocusBehavior/>
-                        </i:Interaction.Behaviors>
-                    </TextBox>
 
-                    <settings:ShortcutsBinder Grid.Row="2"/>
+                    <Grid Margin="12" Height="{Binding ElementName=window, Path=Height, Converter={converters:SubtractConverter}, ConverterParameter=50}">
+                        <Grid.IsVisible>
+                            <Binding Path="CurrentPage" Converter="{converters:IsEqualConverter}">
+                                <Binding.ConverterParameter>
+                                    <sys:Int32>2</sys:Int32>
+                                </Binding.ConverterParameter>
+                            </Binding>
+                        </Grid.IsVisible>
+                        <Grid.RowDefinitions>
+                            <RowDefinition Height="Auto"/>
+                            <RowDefinition Height="Auto"/>
+                            <RowDefinition/>
+                        </Grid.RowDefinitions>
+                        <StackPanel HorizontalAlignment="Center" Orientation="Horizontal">
+                            <!--<StackPanel.Resources>
+                                <Style TargetType="Button" BasedOn="{StaticResource DarkRoundButton}">
+                                    <Setter Property="HorizontalAlignment" Value="Stretch"/>
+                                    <Setter Property="MinWidth" Value="115"/>
+                                    <Setter Property="Height" Value="Auto"/>
+                                    <Setter Property="FontSize" Value="12"/>
+                                    <Setter Property="Padding" Value="5"/>
+                                </Style>
+                            </StackPanel.Resources>-->
+                            <Button Command="{cmds:Command PixiEditor.Shortcuts.Export}"
+                                    d:Content="Export" ui:Translator.Key="EXPORT"/>
+                            <Button Command="{cmds:Command PixiEditor.Shortcuts.Import}"
+                                    d:Content="Import" ui:Translator.Key="IMPORT"/>
+                            <Button Command="{cmds:Command PixiEditor.Shortcuts.OpenTemplatePopup}"
+                                    d:Content="Shortcut Templates" ui:Translator.Key="SHORTCUT_TEMPLATES"/>
+                            <Button Command="{cmds:Command PixiEditor.Shortcuts.Reset}"
+                                    d:Content="Reset all" ui:Translator.Key="RESET_ALL"/>
+                        </StackPanel>
+                        <TextBox Grid.Row="1"
+                                 Text="{Binding SearchTerm, Mode=TwoWay}">
+                            <!--Styles="{StaticResource DarkTextBoxStyle}"-->
+                            <i:Interaction.Behaviors>
+                                <behaviours:GlobalShortcutFocusBehavior/>
+                            </i:Interaction.Behaviors>
+                        </TextBox>
+
+                        <settings:ShortcutsBinder Grid.Row="2"/>
+                    </Grid>
                 </Grid>
-            </Grid>
-        </Border>
+            </Border>
+        </DockPanel>
     </DockPanel>
 
 </Window>

+ 4 - 0
src/PixiEditor.UI.Common/Controls/Window.axaml

@@ -7,6 +7,10 @@
         <Setter Property="Background" Value="{DynamicResource ThemeBackgroundBrush}" />
         <Setter Property="Foreground" Value="{DynamicResource ThemeForegroundBrush}" />
         <Setter Property="FontSize" Value="{DynamicResource FontSizeNormal}" />
+        <Setter Property="WindowStartupLocation" Value="CenterScreen" />
+        <Setter Property="ExtendClientAreaChromeHints" Value="NoChrome" />
+        <Setter Property="ExtendClientAreaToDecorationsHint" Value="True" />
+        <Setter Property="ExtendClientAreaTitleBarHeightHint" Value="36" />
         <Setter Property="Template">
             <ControlTemplate>
                 <Panel>