Ac_K 3 лет назад
Родитель
Сommit
8aff17a93c

+ 3 - 3
Ryujinx.Ava/App.axaml

@@ -1,9 +1,9 @@
 <Application
     x:Class="Ryujinx.Ava.App"
     xmlns="https://github.com/avaloniaui"
-    xmlns:sty="using:FluentAvalonia.Styling"
-    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
+    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+    xmlns:sty="using:FluentAvalonia.Styling">
     <Application.Styles>
-        <sty:FluentAvaloniaTheme UseSystemThemeOnWindows="False"/>
+        <sty:FluentAvaloniaTheme UseSystemThemeOnWindows="False" />
     </Application.Styles>
 </Application>

+ 2 - 3
Ryujinx.Ava/App.axaml.cs

@@ -2,7 +2,6 @@ using Avalonia;
 using Avalonia.Controls.ApplicationLifetimes;
 using Avalonia.Markup.Xaml;
 using Avalonia.Styling;
-using Avalonia.Threading;
 using FluentAvalonia.Styling;
 using Ryujinx.Ava.Ui.Windows;
 using Ryujinx.Common;
@@ -13,7 +12,7 @@ using System.IO;
 
 namespace Ryujinx.Ava
 {
-    public class App : Avalonia.Application
+    public class App : Application
     {
         public override void Initialize()
         {
@@ -46,7 +45,7 @@ namespace Ryujinx.Ava
 
         private void ShowRestartDialog()
         {
-            // TODO. Implement Restart Dialog when SettingsWindow is implemented.
+            // TODO: Implement Restart Dialog when SettingsWindow is implemented.
         }
 
         private void ThemeChanged_Event(object sender, ReactiveEventArgs<string> e)

+ 6 - 17
Ryujinx.Ava/AppHost.cs

@@ -57,7 +57,7 @@ namespace Ryujinx.Ava
         private static readonly Cursor InvisibleCursor = new Cursor(StandardCursorType.None);
 
         private readonly AccountManager _accountManager;
-        private UserChannelPersistence _userChannelPersistence;
+        private readonly UserChannelPersistence _userChannelPersistence;
 
         private readonly InputManager _inputManager;
 
@@ -82,7 +82,6 @@ namespace Ryujinx.Ava
         private bool _dialogShown;
 
         private WindowsMultimediaTimerResolution _windowsMultimediaTimerResolution;
-        private KeyboardStateSnapshot _lastKeyboardSnapshot;
 
         private readonly CancellationTokenSource _gpuCancellationTokenSource;
 
@@ -126,7 +125,6 @@ namespace Ryujinx.Ava
             _glLogLevel = ConfigurationState.Instance.Logger.GraphicsDebugLevel;
             _inputManager.SetMouseDriver(new AvaloniaMouseDriver(renderer));
             _keyboardInterface = (IKeyboard)_inputManager.KeyboardDriver.GetGamepad("0");
-            _lastKeyboardSnapshot = _keyboardInterface.GetKeyboardStateSnapshot();
 
             NpadManager = _inputManager.CreateNpadManager();
             TouchScreenManager = _inputManager.CreateTouchScreenManager();
@@ -722,9 +720,7 @@ namespace Ryujinx.Ava
                 }
             }
 
-            var memoryConfiguration = ConfigurationState.Instance.System.ExpandRam.Value
-                ? HLE.MemoryConfiguration.MemoryConfiguration6GB
-                : HLE.MemoryConfiguration.MemoryConfiguration4GB;
+            var memoryConfiguration = ConfigurationState.Instance.System.ExpandRam.Value ? HLE.MemoryConfiguration.MemoryConfiguration6GB : HLE.MemoryConfiguration.MemoryConfiguration4GB;
 
             IntegrityCheckLevel fsIntegrityCheckLevel = ConfigurationState.Instance.System.EnableFsIntegrityChecks ? IntegrityCheckLevel.ErrorOnInvalid : IntegrityCheckLevel.None;
 
@@ -898,7 +894,7 @@ namespace Ryujinx.Ava
             }
         }
 
-        private void HandleScreenState(KeyboardStateSnapshot keyboard, KeyboardStateSnapshot lastKeyboard)
+        private void HandleScreenState()
         {
             if (ConfigurationState.Instance.Hid.EnableMouse)
             {
@@ -935,19 +931,12 @@ namespace Ryujinx.Ava
             {
                 Dispatcher.UIThread.Post(() =>
                 {
-                    KeyboardStateSnapshot keyboard = _keyboardInterface.GetKeyboardStateSnapshot();
+                    HandleScreenState();
 
-                    HandleScreenState(keyboard, _lastKeyboardSnapshot);
-
-                    if (keyboard.IsPressed(Key.Delete))
+                    if (_keyboardInterface.GetKeyboardStateSnapshot().IsPressed(Key.Delete) && _parent.WindowState != WindowState.FullScreen)
                     {
-                        if (_parent.WindowState != WindowState.FullScreen)
-                        {
-                            Ptc.Continue();
-                        }
+                        Ptc.Continue();
                     }
-
-                    _lastKeyboardSnapshot = keyboard;
                 });
             }
 

+ 8 - 6
Ryujinx.Ava/Assets/Styles/BaseDark.xaml

@@ -1,9 +1,7 @@
-<Styles
-    xmlns="https://github.com/avaloniaui"
-    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
+<Styles xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
     <StyleInclude Source="avares://Ryujinx.Ava/Assets/Styles/Styles.xaml" />
     <Design.PreviewWith>
-        <Border Padding="20" Height="2000">
+        <Border Height="2000" Padding="20">
             <StackPanel Spacing="5">
                 <TextBlock Text="Code Font Family" />
                 <Grid RowDefinitions="*,Auto">
@@ -27,8 +25,12 @@
                             Name="btnRem"
                             HorizontalAlignment="Right"
                             Content="Add" />
-                        <TextBox Width="100" VerticalAlignment="Center" Text="Rrrrr" Watermark="Hello"
-                                 UseFloatingWatermark="True" />
+                        <TextBox
+                            Width="100"
+                            VerticalAlignment="Center"
+                            Text="Rrrrr"
+                            UseFloatingWatermark="True"
+                            Watermark="Hello" />
                         <CheckBox>Test Check</CheckBox>
                     </StackPanel>
                 </Grid>

+ 8 - 6
Ryujinx.Ava/Assets/Styles/BaseLight.xaml

@@ -1,9 +1,7 @@
-<Styles
-    xmlns="https://github.com/avaloniaui"
-    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
+<Styles xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
     <StyleInclude Source="avares://Ryujinx.Ava/Assets/Styles/Styles.xaml" />
     <Design.PreviewWith>
-        <Border Padding="20" Height="2000">
+        <Border Height="2000" Padding="20">
             <StackPanel Spacing="5">
                 <TextBlock Text="Code Font Family" />
                 <Grid RowDefinitions="*,Auto">
@@ -27,8 +25,12 @@
                             Name="btnRem"
                             HorizontalAlignment="Right"
                             Content="Add" />
-                        <TextBox Width="100" VerticalAlignment="Center" Text="Rrrrr" Watermark="Hello"
-                                 UseFloatingWatermark="True" />
+                        <TextBox
+                            Width="100"
+                            VerticalAlignment="Center"
+                            Text="Rrrrr"
+                            UseFloatingWatermark="True"
+                            Watermark="Hello" />
                         <CheckBox>Test Check</CheckBox>
                     </StackPanel>
                 </Grid>

+ 17 - 17
Ryujinx.Ava/Assets/Styles/Styles.xaml

@@ -1,10 +1,10 @@
 <Styles
     xmlns="https://github.com/avaloniaui"
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-    xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
-    xmlns:sys="clr-namespace:System;assembly=netstandard">
+    xmlns:sys="clr-namespace:System;assembly=netstandard"
+    xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia">
     <Design.PreviewWith>
-        <Border Padding="20" Height="2000">
+        <Border Height="2000" Padding="20">
             <StackPanel Spacing="5">
                 <TextBlock Text="Code Font Family" />
                 <Grid RowDefinitions="*,Auto">
@@ -22,15 +22,19 @@
                     <StackPanel Orientation="Horizontal">
                         <ToggleButton
                             Name="btnAdd"
-                            HorizontalAlignment="Right"
                             Height="28"
+                            HorizontalAlignment="Right"
                             Content="Addy" />
                         <Button
                             Name="btnRem"
                             HorizontalAlignment="Right"
                             Content="Add" />
-                        <TextBox Width="100" VerticalAlignment="Center" Text="Rrrrr" Watermark="Hello"
-                                 UseFloatingWatermark="True" />
+                        <TextBox
+                            Width="100"
+                            VerticalAlignment="Center"
+                            Text="Rrrrr"
+                            UseFloatingWatermark="True"
+                            Watermark="Hello" />
                         <CheckBox>Test Check</CheckBox>
                     </StackPanel>
                 </Grid>
@@ -62,13 +66,10 @@
     <Style Selector="Image.huge">
         <Setter Property="Width" Value="120" />
     </Style>
-    <Style Selector="RadioButton">
-        <Setter Property="VerticalContentAlignment" Value="Center" />
-    </Style>
-    <Style Selector="#TitleBarHost > Image">
+    <Style Selector="#TitleBarHost &gt; Image">
         <Setter Property="Margin" Value="10" />
     </Style>
-    <Style Selector="#TitleBarHost > Label">
+    <Style Selector="#TitleBarHost &gt; Label">
         <Setter Property="Margin" Value="5" />
         <Setter Property="FontSize" Value="14" />
     </Style>
@@ -225,12 +226,12 @@
         <StaticResource x:Key="ListViewItemBackgroundPointerOver" ResourceKey="SystemAccentColorDark2" />
         <StaticResource x:Key="ListViewItemBackgroundSelectedPressed" ResourceKey="ThemeAccentColorBrush" />
         <StaticResource x:Key="ListViewItemBackgroundSelectedPointerOver" ResourceKey="SystemAccentColorDark2" />
-        <SolidColorBrush x:Key="DataGridGridLinesBrush"
-                         Color="{DynamicResource SystemBaseMediumLowColor}"
-                         Opacity="0.4" />
+        <SolidColorBrush
+            x:Key="DataGridGridLinesBrush"
+            Opacity="0.4"
+            Color="{DynamicResource SystemBaseMediumLowColor}" />
         <SolidColorBrush x:Key="DataGridSelectionBackgroundBrush" Color="{DynamicResource DataGridSelectionColor}" />
-        <SolidColorBrush x:Key="MenuFlyoutPresenterBorderBrush"
-                         Color="{DynamicResource MenuFlyoutPresenterBorderColor}" />
+        <SolidColorBrush x:Key="MenuFlyoutPresenterBorderBrush" Color="{DynamicResource MenuFlyoutPresenterBorderColor}" />
         <SolidColorBrush x:Key="ThemeAccentColorBrush" Color="{DynamicResource SystemAccentColor}" />
         <SolidColorBrush x:Key="ListBoxBackground" Color="{DynamicResource ThemeContentBackgroundColor}" />
         <SolidColorBrush x:Key="ThemeForegroundBrush" Color="{DynamicResource ThemeForegroundColor}" />
@@ -241,7 +242,6 @@
         <SolidColorBrush x:Key="SplitButtonBackgroundCheckedDisabled" Color="#00E81123" />
         <Thickness x:Key="PageMargin">40 0 40 0</Thickness>
         <Thickness x:Key="Margin">0 5 0 5</Thickness>
-        <Thickness x:Key="TextMargin">0 4 0 0</Thickness>
         <Thickness x:Key="MenuItemPadding">5 0 5 0</Thickness>
         <Color x:Key="MenuFlyoutPresenterBorderColor">#00000000</Color>
         <Color x:Key="SystemAccentColor">#FF00C3E3</Color>

+ 41 - 20
Ryujinx.Ava/Ui/Applet/ErrorAppletWindow.axaml

@@ -1,17 +1,21 @@
-<Window xmlns="https://github.com/avaloniaui"
-        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
-        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
-        xmlns:window="clr-namespace:Ryujinx.Ava.Ui.Windows"
-        mc:Ignorable="d"
-        x:Class="Ryujinx.Ava.Ui.Applet.ErrorAppletWindow"
-        xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale"
-        CanResize="False"
-        SizeToContent="Height"
-        Width="450"
-        Height="340"
-        Title="{locale:Locale ErrorWindowTitle}">
-    <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="20">
+<Window
+    x:Class="Ryujinx.Ava.Ui.Applet.ErrorAppletWindow"
+    xmlns="https://github.com/avaloniaui"
+    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+    xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale"
+    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+    xmlns:window="clr-namespace:Ryujinx.Ava.Ui.Windows"
+    Title="{locale:Locale ErrorWindowTitle}"
+    Width="450"
+    Height="340"
+    CanResize="False"
+    SizeToContent="Height"
+    mc:Ignorable="d">
+    <Grid
+        Margin="20"
+        HorizontalAlignment="Stretch"
+        VerticalAlignment="Stretch">
         <Grid.RowDefinitions>
             <RowDefinition Height="Auto" />
             <RowDefinition Height="*" />
@@ -21,11 +25,28 @@
             <ColumnDefinition Width="Auto" />
             <ColumnDefinition />
         </Grid.ColumnDefinitions>
-        <Image Grid.Row="1" Grid.RowSpan="2" Margin="5, 10, 20 , 10" Grid.Column="0"
-               Source="resm:Ryujinx.Ui.Common.Resources.Logo_Ryujinx.png?assembly=Ryujinx.Ui.Common" Height="80" MinWidth="50" />
-        <TextBlock Grid.Row="1" Margin="10" Grid.Column="1" VerticalAlignment="Stretch" TextWrapping="Wrap"
-                   Text="{Binding Message}" />
-        <StackPanel Name="ButtonStack" Margin="10" Spacing="10" Grid.Row="2" Grid.Column="1"
-                    HorizontalAlignment="Right" Orientation="Horizontal" />
+        <Image
+            Grid.Row="1"
+            Grid.RowSpan="2"
+            Grid.Column="0"
+            Height="80"
+            MinWidth="50"
+            Margin="5,10,20,10"
+            Source="resm:Ryujinx.Ui.Common.Resources.Logo_Ryujinx.png?assembly=Ryujinx.Ui.Common" />
+        <TextBlock
+            Grid.Row="1"
+            Grid.Column="1"
+            Margin="10"
+            VerticalAlignment="Stretch"
+            Text="{Binding Message}"
+            TextWrapping="Wrap" />
+        <StackPanel
+            Name="ButtonStack"
+            Grid.Row="2"
+            Grid.Column="1"
+            Margin="10"
+            HorizontalAlignment="Right"
+            Orientation="Horizontal"
+            Spacing="10" />
     </Grid>
 </Window>

+ 51 - 19
Ryujinx.Ava/Ui/Applet/SwkbdAppletDialog.axaml

@@ -1,12 +1,16 @@
-<UserControl xmlns="https://github.com/avaloniaui"
-             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
-             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
-             xmlns:window="clr-namespace:Ryujinx.Ava.Ui.Windows"
-             mc:Ignorable="d"
-             x:Class="Ryujinx.Ava.Ui.Controls.SwkbdAppletDialog"
-             Width="400">
-    <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="20">
+<UserControl
+    x:Class="Ryujinx.Ava.Ui.Controls.SwkbdAppletDialog"
+    xmlns="https://github.com/avaloniaui"
+    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+    xmlns:window="clr-namespace:Ryujinx.Ava.Ui.Windows"
+    Width="400"
+    mc:Ignorable="d">
+    <Grid
+        Margin="20"
+        HorizontalAlignment="Stretch"
+        VerticalAlignment="Stretch">
         <Grid.RowDefinitions>
             <RowDefinition Height="Auto" />
             <RowDefinition Height="Auto" />
@@ -18,15 +22,43 @@
             <ColumnDefinition Width="Auto" />
             <ColumnDefinition />
         </Grid.ColumnDefinitions>
-        <Image Grid.Row="1" VerticalAlignment="Center" Grid.RowSpan="5" Margin="5, 10, 20 , 10"
-               Source="resm:Ryujinx.Ui.Common.Resources.Logo_Ryujinx.png?assembly=Ryujinx.Ui.Common" Height="80"
-               MinWidth="50" />
-        <TextBlock Grid.Row="1" Margin="5" Grid.Column="1" Text="{Binding MainText}" TextWrapping="Wrap" />
-        <TextBlock Grid.Row="2" Margin="5" Grid.Column="1" Text="{Binding SecondaryText}" TextWrapping="Wrap" />
-        <TextBox Name="Input" KeyUp="Message_KeyUp" UseFloatingWatermark="True" TextInput="Message_TextInput"
-                 Text="{Binding Message}" Grid.Row="2"
-                 Grid.Column="1" VerticalAlignment="Center" HorizontalAlignment="Stretch" TextWrapping="Wrap" />
-        <TextBlock Name="Error" Margin="5" Grid.Row="4" Grid.Column="1" HorizontalAlignment="Stretch"
-                   TextWrapping="Wrap" />
+        <Image
+            Grid.Row="1"
+            Grid.RowSpan="5"
+            Height="80"
+            MinWidth="50"
+            Margin="5,10,20,10"
+            VerticalAlignment="Center"
+            Source="resm:Ryujinx.Ui.Common.Resources.Logo_Ryujinx.png?assembly=Ryujinx.Ui.Common" />
+        <TextBlock
+            Grid.Row="1"
+            Grid.Column="1"
+            Margin="5"
+            Text="{Binding MainText}"
+            TextWrapping="Wrap" />
+        <TextBlock
+            Grid.Row="2"
+            Grid.Column="1"
+            Margin="5"
+            Text="{Binding SecondaryText}"
+            TextWrapping="Wrap" />
+        <TextBox
+            Name="Input"
+            Grid.Row="2"
+            Grid.Column="1"
+            HorizontalAlignment="Stretch"
+            VerticalAlignment="Center"
+            KeyUp="Message_KeyUp"
+            Text="{Binding Message}"
+            TextInput="Message_TextInput"
+            TextWrapping="Wrap"
+            UseFloatingWatermark="True" />
+        <TextBlock
+            Name="Error"
+            Grid.Row="4"
+            Grid.Column="1"
+            Margin="5"
+            HorizontalAlignment="Stretch"
+            TextWrapping="Wrap" />
     </Grid>
 </UserControl>

+ 167 - 136
Ryujinx.Ava/Ui/Controls/GameGridView.axaml

@@ -1,188 +1,219 @@
-<UserControl xmlns="https://github.com/avaloniaui"
-             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
-             xmlns:flex="clr-namespace:Avalonia.Flexbox;assembly=Avalonia.Flexbox"
-             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
-             xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale"
-             xmlns:controls="clr-namespace:Ryujinx.Ava.Ui.Controls"
-             xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
-             mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
-             x:Class="Ryujinx.Ava.Ui.Controls.GameGridView">
-	<UserControl.Resources>
-		<controls:BitmapArrayValueConverter x:Key="ByteImage" />
-		<MenuFlyout x:Key="GameContextMenu" Opened="MenuBase_OnMenuOpened">
-			<MenuItem
+<UserControl
+    x:Class="Ryujinx.Ava.Ui.Controls.GameGridView"
+    xmlns="https://github.com/avaloniaui"
+    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+    xmlns:controls="clr-namespace:Ryujinx.Ava.Ui.Controls"
+    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+    xmlns:flex="clr-namespace:Avalonia.Flexbox;assembly=Avalonia.Flexbox"
+    xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale"
+    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+    xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
+    d:DesignHeight="450"
+    d:DesignWidth="800"
+    mc:Ignorable="d">
+    <UserControl.Resources>
+        <controls:BitmapArrayValueConverter x:Key="ByteImage" />
+        <MenuFlyout x:Key="GameContextMenu" Opened="MenuBase_OnMenuOpened">
+            <MenuItem
                 Command="{Binding ToggleFavorite}"
                 Header="{locale:Locale GameListContextMenuToggleFavorite}"
                 ToolTip.Tip="{locale:Locale GameListContextMenuToggleFavoriteToolTip}" />
-			<Separator />
-			<MenuItem
+            <Separator />
+            <MenuItem
                 Command="{Binding OpenUserSaveDirectory}"
                 Header="{locale:Locale GameListContextMenuOpenUserSaveDirectory}"
                 ToolTip.Tip="{locale:Locale GameListContextMenuOpenUserSaveDirectoryToolTip}" />
-			<MenuItem
+            <MenuItem
                 Command="{Binding OpenDeviceSaveDirectory}"
                 Header="{locale:Locale GameListContextMenuOpenUserDeviceDirectory}"
                 ToolTip.Tip="{locale:Locale GameListContextMenuOpenUserDeviceDirectoryToolTip}" />
-			<MenuItem
+            <MenuItem
                 Command="{Binding OpenBcatSaveDirectory}"
                 Header="{locale:Locale GameListContextMenuOpenUserBcatDirectory}"
                 ToolTip.Tip="{locale:Locale GameListContextMenuOpenUserBcatDirectoryToolTip}" />
-			<Separator />
-			<MenuItem
+            <Separator />
+            <MenuItem
                 Command="{Binding OpenTitleUpdateManager}"
                 Header="{locale:Locale GameListContextMenuManageTitleUpdates}"
                 ToolTip.Tip="{locale:Locale GameListContextMenuManageTitleUpdatesToolTip}" />
-			<MenuItem
+            <MenuItem
                 Command="{Binding OpenDlcManager}"
                 Header="{locale:Locale GameListContextMenuManageDlc}"
                 ToolTip.Tip="{locale:Locale GameListContextMenuManageDlcToolTip}" />
-			<MenuItem
+            <MenuItem
                 Command="{Binding OpenCheatManager}"
                 Header="{locale:Locale GameListContextMenuManageCheat}"
                 ToolTip.Tip="{locale:Locale GameListContextMenuManageCheatToolTip}" />
-			<MenuItem
+            <MenuItem
                 Command="{Binding OpenModsDirectory}"
                 Header="{locale:Locale GameListContextMenuOpenModsDirectory}"
                 ToolTip.Tip="{locale:Locale GameListContextMenuOpenModsDirectoryToolTip}" />
-			<MenuItem
+            <MenuItem
                 Command="{Binding OpenSdModsDirectory}"
                 Header="{locale:Locale GameListContextMenuOpenSdModsDirectory}"
                 ToolTip.Tip="{locale:Locale GameListContextMenuOpenSdModsDirectoryToolTip}" />
-			<Separator />
-			<MenuItem Header="{locale:Locale GameListContextMenuCacheManagement}">
-				<MenuItem
+            <Separator />
+            <MenuItem Header="{locale:Locale GameListContextMenuCacheManagement}">
+                <MenuItem
                     Command="{Binding PurgePtcCache}"
                     Header="{locale:Locale GameListContextMenuCacheManagementPurgePptc}"
                     ToolTip.Tip="{locale:Locale GameListContextMenuCacheManagementPurgePptcToolTip}" />
-				<MenuItem
+                <MenuItem
                     Command="{Binding PurgeShaderCache}"
                     Header="{locale:Locale GameListContextMenuCacheManagementPurgeShaderCache}"
                     ToolTip.Tip="{locale:Locale GameListContextMenuCacheManagementPurgeShaderCacheToolTip}" />
-				<MenuItem
+                <MenuItem
                     Command="{Binding OpenPtcDirectory}"
                     Header="{locale:Locale GameListContextMenuCacheManagementOpenPptcDirectory}"
                     ToolTip.Tip="{locale:Locale GameListContextMenuCacheManagementOpenPptcDirectoryToolTip}" />
-				<MenuItem
+                <MenuItem
                     Command="{Binding OpenShaderCacheDirectory}"
                     Header="{locale:Locale GameListContextMenuCacheManagementOpenShaderCacheDirectory}"
                     ToolTip.Tip="{locale:Locale GameListContextMenuCacheManagementOpenShaderCacheDirectoryToolTip}" />
-			</MenuItem>
-			<MenuItem Header="{locale:Locale GameListContextMenuExtractData}">
-				<MenuItem
+            </MenuItem>
+            <MenuItem Header="{locale:Locale GameListContextMenuExtractData}">
+                <MenuItem
                     Command="{Binding ExtractExeFs}"
                     Header="{locale:Locale GameListContextMenuExtractDataExeFS}"
                     ToolTip.Tip="{locale:Locale GameListContextMenuExtractDataExeFSToolTip}" />
-				<MenuItem
+                <MenuItem
                     Command="{Binding ExtractRomFs}"
                     Header="{locale:Locale GameListContextMenuExtractDataRomFS}"
                     ToolTip.Tip="{locale:Locale GameListContextMenuExtractDataRomFSToolTip}" />
-				<MenuItem
+                <MenuItem
                     Command="{Binding ExtractLogo}"
                     Header="{locale:Locale GameListContextMenuExtractDataLogo}"
                     ToolTip.Tip="{locale:Locale GameListContextMenuExtractDataLogoToolTip}" />
-			</MenuItem>
-		</MenuFlyout>
-	</UserControl.Resources>
-	<Grid>
-		<Grid.RowDefinitions>
-			<RowDefinition Height="*" />
-		</Grid.RowDefinitions>
-		<ListBox Grid.Row="0"
-                 Padding="8"
-                 HorizontalAlignment="Stretch"
-                 DoubleTapped="GameList_DoubleTapped"
-                 SelectionChanged="GameList_SelectionChanged"
-                 ContextFlyout="{StaticResource GameContextMenu}"
-                 VerticalAlignment="Stretch"
-                 Items="{Binding AppsObservableList}">
-			<ListBox.ItemsPanel>
-				<ItemsPanelTemplate>
-					<flex:FlexPanel HorizontalAlignment="Stretch" VerticalAlignment="Stretch" JustifyContent="Center"
-                                    AlignContent="FlexStart" />
-				</ItemsPanelTemplate>
-			</ListBox.ItemsPanel>
-			<ListBox.Styles>
-				<Style Selector="ListBoxItem">
-					<Setter Property="Padding" Value="0" />
-					<Setter Property="Margin" Value="5" />
-					<Setter Property="CornerRadius" Value="5" />
-					<Setter Property="Background" Value="{DynamicResource SystemAccentColorDark3}" />
-					<Style.Animations>
-						<Animation Duration="0:0:0.7">
-							<KeyFrame Cue="0%">
-								<Setter Property="MaxWidth" Value="0"/>
-								<Setter Property="Opacity" Value="0.0"/>
-							</KeyFrame>
-							<KeyFrame Cue="50%">
-								<Setter Property="MaxWidth" Value="1000"/>
-								<Setter Property="Opacity" Value="0.3"/>
-							</KeyFrame>
-							<KeyFrame Cue="100%">
-								<Setter Property="MaxWidth" Value="1000"/>
-								<Setter Property="Opacity" Value="1.0"/>
-							</KeyFrame>
-						</Animation>
-					</Style.Animations>
-				</Style>
-			</ListBox.Styles>
-			<ListBox.ItemTemplate>
-				<DataTemplate>
-					<Grid>
-						<Grid.Styles>
-							<Style Selector="ui|SymbolIcon.small.icon">
-								<Setter Property="FontSize" Value="15" />
-							</Style>
-							<Style Selector="ui|SymbolIcon.normal.icon">
-								<Setter Property="FontSize" Value="19" />
-							</Style>
-							<Style Selector="ui|SymbolIcon.large.icon">
-								<Setter Property="FontSize" Value="23" />
-							</Style>
-							<Style Selector="ui|SymbolIcon.huge.icon">
-								<Setter Property="FontSize" Value="26" />
-							</Style>
-						</Grid.Styles>
-						<Border
-                            Classes.small="{Binding $parent[UserControl].DataContext.IsGridSmall}"
+            </MenuItem>
+        </MenuFlyout>
+    </UserControl.Resources>
+    <Grid>
+        <Grid.RowDefinitions>
+            <RowDefinition Height="*" />
+        </Grid.RowDefinitions>
+        <ListBox
+            Grid.Row="0"
+            Padding="8"
+            HorizontalAlignment="Stretch"
+            VerticalAlignment="Stretch"
+            ContextFlyout="{StaticResource GameContextMenu}"
+            DoubleTapped="GameList_DoubleTapped"
+            Items="{Binding AppsObservableList}"
+            SelectionChanged="GameList_SelectionChanged">
+            <ListBox.ItemsPanel>
+                <ItemsPanelTemplate>
+                    <flex:FlexPanel
+                        HorizontalAlignment="Stretch"
+                        VerticalAlignment="Stretch"
+                        AlignContent="FlexStart"
+                        JustifyContent="Center" />
+                </ItemsPanelTemplate>
+            </ListBox.ItemsPanel>
+            <ListBox.Styles>
+                <Style Selector="ListBoxItem">
+                    <Setter Property="Padding" Value="0" />
+                    <Setter Property="Margin" Value="5" />
+                    <Setter Property="CornerRadius" Value="5" />
+                    <Setter Property="Background" Value="{DynamicResource SystemAccentColorDark3}" />
+                    <Style.Animations>
+                        <Animation Duration="0:0:0.7">
+                            <KeyFrame Cue="0%">
+                                <Setter Property="MaxWidth" Value="0" />
+                                <Setter Property="Opacity" Value="0.0" />
+                            </KeyFrame>
+                            <KeyFrame Cue="50%">
+                                <Setter Property="MaxWidth" Value="1000" />
+                                <Setter Property="Opacity" Value="0.3" />
+                            </KeyFrame>
+                            <KeyFrame Cue="100%">
+                                <Setter Property="MaxWidth" Value="1000" />
+                                <Setter Property="Opacity" Value="1.0" />
+                            </KeyFrame>
+                        </Animation>
+                    </Style.Animations>
+                </Style>
+            </ListBox.Styles>
+            <ListBox.ItemTemplate>
+                <DataTemplate>
+                    <Grid>
+                        <Grid.Styles>
+                            <Style Selector="ui|SymbolIcon.small.icon">
+                                <Setter Property="FontSize" Value="15" />
+                            </Style>
+                            <Style Selector="ui|SymbolIcon.normal.icon">
+                                <Setter Property="FontSize" Value="19" />
+                            </Style>
+                            <Style Selector="ui|SymbolIcon.large.icon">
+                                <Setter Property="FontSize" Value="23" />
+                            </Style>
+                            <Style Selector="ui|SymbolIcon.huge.icon">
+                                <Setter Property="FontSize" Value="26" />
+                            </Style>
+                        </Grid.Styles>
+                        <Border
+                            Margin="0"
+                            Padding="{Binding $parent[UserControl].DataContext.GridItemPadding}"
+                            HorizontalAlignment="Stretch"
+                            VerticalAlignment="Stretch"
+                            Classes.huge="{Binding $parent[UserControl].DataContext.IsGridHuge}"
+                            Classes.large="{Binding $parent[UserControl].DataContext.IsGridLarge}"
                             Classes.normal="{Binding $parent[UserControl].DataContext.IsGridMedium}"
+                            Classes.small="{Binding $parent[UserControl].DataContext.IsGridSmall}"
+                            ClipToBounds="True"
+                            CornerRadius="5">
+                            <Grid Margin="0">
+                                <Grid.RowDefinitions>
+                                    <RowDefinition Height="Auto" />
+                                    <RowDefinition Height="Auto" />
+                                </Grid.RowDefinitions>
+                                <Image
+                                    Grid.Row="0"
+                                    Margin="0"
+                                    HorizontalAlignment="Stretch"
+                                    VerticalAlignment="Top"
+                                    Source="{Binding Icon, Converter={StaticResource ByteImage}}" />
+                                <StackPanel
+                                    Grid.Row="1"
+                                    Height="50"
+                                    Margin="5"
+                                    HorizontalAlignment="Stretch"
+                                    VerticalAlignment="Stretch"
+                                    IsVisible="{Binding $parent[UserControl].DataContext.ShowNames}">
+                                    <TextBlock
+                                        HorizontalAlignment="Stretch"
+                                        Text="{Binding TitleName}"
+                                        TextAlignment="Center"
+                                        TextWrapping="Wrap" />
+                                </StackPanel>
+                            </Grid>
+                        </Border>
+                        <ui:SymbolIcon
+                            Margin="5"
+                            HorizontalAlignment="Left"
+                            VerticalAlignment="Top"
+                            Classes.huge="{Binding $parent[UserControl].DataContext.IsGridHuge}"
+                            Classes.icon="true"
                             Classes.large="{Binding $parent[UserControl].DataContext.IsGridLarge}"
+                            Classes.normal="{Binding $parent[UserControl].DataContext.IsGridMedium}"
+                            Classes.small="{Binding $parent[UserControl].DataContext.IsGridSmall}"
+                            Foreground="Yellow"
+                            IsVisible="{Binding Favorite}"
+                            Symbol="StarFilled" />
+                        <ui:SymbolIcon
+                            Margin="5"
+                            HorizontalAlignment="Left"
+                            VerticalAlignment="Top"
                             Classes.huge="{Binding $parent[UserControl].DataContext.IsGridHuge}"
-                            HorizontalAlignment="Stretch"
-                            Padding="{Binding $parent[UserControl].DataContext.GridItemPadding}" CornerRadius="5"
-                            VerticalAlignment="Stretch" Margin="0" ClipToBounds="True">
-							<Grid Margin="0">
-								<Grid.RowDefinitions>
-									<RowDefinition Height="Auto" />
-									<RowDefinition Height="Auto" />
-								</Grid.RowDefinitions>
-								<Image HorizontalAlignment="Stretch" VerticalAlignment="Top" Margin="0" Grid.Row="0"
-                                       Source="{Binding Icon, Converter={StaticResource ByteImage}}" />
-								<StackPanel IsVisible="{Binding $parent[UserControl].DataContext.ShowNames}"
-                                            Height="50" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
-                                            Margin="5" Grid.Row="1">
-									<TextBlock Text="{Binding TitleName}" TextAlignment="Center" TextWrapping="Wrap"
-                                               HorizontalAlignment="Stretch" />
-								</StackPanel>
-							</Grid>
-						</Border>
-						<ui:SymbolIcon Classes.icon="true" Classes.small="{Binding $parent[UserControl].DataContext.IsGridSmall}"
-                               Classes.normal="{Binding $parent[UserControl].DataContext.IsGridMedium}"
-                               Classes.large="{Binding $parent[UserControl].DataContext.IsGridLarge}"
-                               Classes.huge="{Binding $parent[UserControl].DataContext.IsGridHuge}"
-									    Foreground="Yellow" Symbol="StarFilled"
-                               IsVisible="{Binding Favorite}" Margin="5" VerticalAlignment="Top"
-                               HorizontalAlignment="Left" />
-						<ui:SymbolIcon Classes.icon="true" Classes.small="{Binding $parent[UserControl].DataContext.IsGridSmall}"
-                               Classes.normal="{Binding $parent[UserControl].DataContext.IsGridMedium}"
-                               Classes.large="{Binding $parent[UserControl].DataContext.IsGridLarge}"
-                               Classes.huge="{Binding $parent[UserControl].DataContext.IsGridHuge}"
-									    Foreground="Black" Symbol="Star"
-                               IsVisible="{Binding Favorite}" Margin="5" VerticalAlignment="Top"
-                               HorizontalAlignment="Left" />
-					</Grid>
-				</DataTemplate>
-			</ListBox.ItemTemplate>
-		</ListBox>
-	</Grid>
+                            Classes.icon="true"
+                            Classes.large="{Binding $parent[UserControl].DataContext.IsGridLarge}"
+                            Classes.normal="{Binding $parent[UserControl].DataContext.IsGridMedium}"
+                            Classes.small="{Binding $parent[UserControl].DataContext.IsGridSmall}"
+                            Foreground="Black"
+                            IsVisible="{Binding Favorite}"
+                            Symbol="Star" />
+                    </Grid>
+                </DataTemplate>
+            </ListBox.ItemTemplate>
+        </ListBox>
+    </Grid>
 </UserControl>

+ 119 - 69
Ryujinx.Ava/Ui/Controls/GameListView.axaml

@@ -1,13 +1,16 @@
-<UserControl xmlns="https://github.com/avaloniaui"
-             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
-             xmlns:flex="clr-namespace:Avalonia.Flexbox;assembly=Avalonia.Flexbox"
-             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
-             xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale"
-             xmlns:controls="clr-namespace:Ryujinx.Ava.Ui.Controls"
-             xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
-             mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
-             x:Class="Ryujinx.Ava.Ui.Controls.GameListView">
+<UserControl
+    x:Class="Ryujinx.Ava.Ui.Controls.GameListView"
+    xmlns="https://github.com/avaloniaui"
+    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+    xmlns:controls="clr-namespace:Ryujinx.Ava.Ui.Controls"
+    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+    xmlns:flex="clr-namespace:Avalonia.Flexbox;assembly=Avalonia.Flexbox"
+    xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale"
+    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+    xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
+    d:DesignHeight="450"
+    d:DesignWidth="800"
+    mc:Ignorable="d">
     <UserControl.Resources>
         <controls:BitmapArrayValueConverter x:Key="ByteImage" />
         <MenuFlyout x:Key="GameContextMenu" Opened="MenuBase_OnMenuOpened">
@@ -88,18 +91,23 @@
         <Grid.RowDefinitions>
             <RowDefinition Height="*" />
         </Grid.RowDefinitions>
-        <ListBox Grid.Row="0"
-                 Padding="8"
-                 HorizontalAlignment="Stretch"
-                 DoubleTapped="GameList_DoubleTapped"
-                 SelectionChanged="GameList_SelectionChanged"
-                 ContextFlyout="{StaticResource GameContextMenu}"
-                 VerticalAlignment="Stretch"
-                 Name="GameListBox"
-                 Items="{Binding AppsObservableList}">
+        <ListBox
+            Name="GameListBox"
+            Grid.Row="0"
+            Padding="8"
+            HorizontalAlignment="Stretch"
+            VerticalAlignment="Stretch"
+            ContextFlyout="{StaticResource GameContextMenu}"
+            DoubleTapped="GameList_DoubleTapped"
+            Items="{Binding AppsObservableList}"
+            SelectionChanged="GameList_SelectionChanged">
             <ListBox.ItemsPanel>
                 <ItemsPanelTemplate>
-                    <StackPanel HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Orientation="Vertical" Spacing="2" />
+                    <StackPanel
+                        HorizontalAlignment="Stretch"
+                        VerticalAlignment="Stretch"
+                        Orientation="Vertical"
+                        Spacing="2" />
                 </ItemsPanelTemplate>
             </ListBox.ItemsPanel>
             <ListBox.Styles>
@@ -112,16 +120,16 @@
                     <Style.Animations>
                         <Animation Duration="0:0:0.7">
                             <KeyFrame Cue="0%">
-                                <Setter Property="MaxHeight" Value="0"/>
-                                <Setter Property="Opacity" Value="0.0"/>
+                                <Setter Property="MaxHeight" Value="0" />
+                                <Setter Property="Opacity" Value="0.0" />
                             </KeyFrame>
                             <KeyFrame Cue="50%">
-                                <Setter Property="MaxHeight" Value="1000"/>
-                                <Setter Property="Opacity" Value="0.3"/>
+                                <Setter Property="MaxHeight" Value="1000" />
+                                <Setter Property="Opacity" Value="0.3" />
                             </KeyFrame>
                             <KeyFrame Cue="100%">
-                                <Setter Property="MaxHeight" Value="1000"/>
-                                <Setter Property="Opacity" Value="1.0"/>
+                                <Setter Property="MaxHeight" Value="1000" />
+                                <Setter Property="Opacity" Value="1.0" />
                             </KeyFrame>
                         </Animation>
                     </Style.Animations>
@@ -130,54 +138,96 @@
             <ListBox.ItemTemplate>
                 <DataTemplate>
                     <Grid>
-                        <Border HorizontalAlignment="Stretch"
-                                Padding="10" CornerRadius="5"
-                                VerticalAlignment="Stretch" Margin="0" ClipToBounds="True">
-                            <Grid >
+                        <Border
+                            Margin="0"
+                            Padding="10"
+                            HorizontalAlignment="Stretch"
+                            VerticalAlignment="Stretch"
+                            ClipToBounds="True"
+                            CornerRadius="5">
+                            <Grid>
                                 <Grid.ColumnDefinitions>
-                                    <ColumnDefinition Width="Auto"/>
-                                    <ColumnDefinition Width="10"/>
-                                    <ColumnDefinition Width="*"/>
-                                    <ColumnDefinition Width="Auto"/>
+                                    <ColumnDefinition Width="Auto" />
+                                    <ColumnDefinition Width="10" />
+                                    <ColumnDefinition Width="*" />
+                                    <ColumnDefinition Width="Auto" />
                                 </Grid.ColumnDefinitions>
                                 <Grid.RowDefinitions>
-                                    <RowDefinition/>
+                                    <RowDefinition />
                                 </Grid.RowDefinitions>
-                                <Image 
-                                    Classes.small="{Binding $parent[UserControl].DataContext.IsGridSmall}"
-                                    Classes.normal="{Binding $parent[UserControl].DataContext.IsGridMedium}"
-                                    Classes.large="{Binding $parent[UserControl].DataContext.IsGridLarge}"
+                                <Image
+                                    Grid.RowSpan="3"
+                                    Grid.Column="0"
+                                    Margin="0"
                                     Classes.huge="{Binding $parent[UserControl].DataContext.IsGridHuge}"
-                                    Grid.RowSpan="3" Grid.Column="0" Margin="0"
-                                       Source="{Binding Icon, Converter={StaticResource ByteImage}}" />
-								<StackPanel Orientation="Vertical" Spacing="5"  VerticalAlignment="Top" HorizontalAlignment="Left"
-											Grid.Column="2">
-									<TextBlock Text="{Binding TitleName}" TextAlignment="Left" TextWrapping="Wrap"
-                                           HorizontalAlignment="Stretch" />
-									<TextBlock Text="{Binding Developer}" TextAlignment="Left" TextWrapping="Wrap"
-											   HorizontalAlignment="Stretch" />
-									<TextBlock Text="{Binding Version}" TextAlignment="Left" TextWrapping="Wrap"
-											   HorizontalAlignment="Stretch" />
-								</StackPanel>
-								<StackPanel Orientation="Vertical" Spacing="5"  VerticalAlignment="Top" HorizontalAlignment="Right"
-											Grid.Column="3">
-									<TextBlock Text="{Binding TimePlayed}" TextAlignment="Right" TextWrapping="Wrap"
-										  HorizontalAlignment="Stretch" />
-									<TextBlock Text="{Binding LastPlayed}" TextAlignment="Right" TextWrapping="Wrap"
-											   HorizontalAlignment="Stretch" />
-									<TextBlock Text="{Binding FileSize}" TextAlignment="Right" TextWrapping="Wrap"
-											   HorizontalAlignment="Stretch" />
-								</StackPanel>
-                                <ui:SymbolIcon Grid.Row="0" Grid.Column="0" FontSize="20"
-									    Foreground="Yellow"
-									   Symbol="StarFilled"
-                                       IsVisible="{Binding Favorite}" Margin="-5, -5, 0, 0" VerticalAlignment="Top"
-                                       HorizontalAlignment="Left" />
-                                <ui:SymbolIcon Grid.Row="0" Grid.Column="0" FontSize="20"
-									    Foreground="Black"
-									   Symbol="Star"
-                                       IsVisible="{Binding Favorite}" Margin="-5, -5, 0, 0" VerticalAlignment="Top"
-                                       HorizontalAlignment="Left" />
+                                    Classes.large="{Binding $parent[UserControl].DataContext.IsGridLarge}"
+                                    Classes.normal="{Binding $parent[UserControl].DataContext.IsGridMedium}"
+                                    Classes.small="{Binding $parent[UserControl].DataContext.IsGridSmall}"
+                                    Source="{Binding Icon, Converter={StaticResource ByteImage}}" />
+                                <StackPanel
+                                    Grid.Column="2"
+                                    HorizontalAlignment="Left"
+                                    VerticalAlignment="Top"
+                                    Orientation="Vertical"
+                                    Spacing="5">
+                                    <TextBlock
+                                        HorizontalAlignment="Stretch"
+                                        Text="{Binding TitleName}"
+                                        TextAlignment="Left"
+                                        TextWrapping="Wrap" />
+                                    <TextBlock
+                                        HorizontalAlignment="Stretch"
+                                        Text="{Binding Developer}"
+                                        TextAlignment="Left"
+                                        TextWrapping="Wrap" />
+                                    <TextBlock
+                                        HorizontalAlignment="Stretch"
+                                        Text="{Binding Version}"
+                                        TextAlignment="Left"
+                                        TextWrapping="Wrap" />
+                                </StackPanel>
+                                <StackPanel
+                                    Grid.Column="3"
+                                    HorizontalAlignment="Right"
+                                    VerticalAlignment="Top"
+                                    Orientation="Vertical"
+                                    Spacing="5">
+                                    <TextBlock
+                                        HorizontalAlignment="Stretch"
+                                        Text="{Binding TimePlayed}"
+                                        TextAlignment="Right"
+                                        TextWrapping="Wrap" />
+                                    <TextBlock
+                                        HorizontalAlignment="Stretch"
+                                        Text="{Binding LastPlayed}"
+                                        TextAlignment="Right"
+                                        TextWrapping="Wrap" />
+                                    <TextBlock
+                                        HorizontalAlignment="Stretch"
+                                        Text="{Binding FileSize}"
+                                        TextAlignment="Right"
+                                        TextWrapping="Wrap" />
+                                </StackPanel>
+                                <ui:SymbolIcon
+                                    Grid.Row="0"
+                                    Grid.Column="0"
+                                    Margin="-5,-5,0,0"
+                                    HorizontalAlignment="Left"
+                                    VerticalAlignment="Top"
+                                    FontSize="20"
+                                    Foreground="Yellow"
+                                    IsVisible="{Binding Favorite}"
+                                    Symbol="StarFilled" />
+                                <ui:SymbolIcon
+                                    Grid.Row="0"
+                                    Grid.Column="0"
+                                    Margin="-5,-5,0,0"
+                                    HorizontalAlignment="Left"
+                                    VerticalAlignment="Top"
+                                    FontSize="20"
+                                    Foreground="Black"
+                                    IsVisible="{Binding Favorite}"
+                                    Symbol="Star" />
                             </Grid>
                         </Border>
                     </Grid>

+ 23 - 10
Ryujinx.Ava/Ui/Controls/InputDialog.axaml

@@ -1,18 +1,31 @@
-<UserControl xmlns="https://github.com/avaloniaui"
-             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
-             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
-             mc:Ignorable="d"
-             x:Class="Ryujinx.Ava.Ui.Controls.InputDialog">
-    <Grid HorizontalAlignment="Stretch" VerticalAlignment="Center" Margin="5,10,5, 5">
+<UserControl
+    x:Class="Ryujinx.Ava.Ui.Controls.InputDialog"
+    xmlns="https://github.com/avaloniaui"
+    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+    mc:Ignorable="d">
+    <Grid
+        Margin="5,10,5,5"
+        HorizontalAlignment="Stretch"
+        VerticalAlignment="Center">
         <Grid.RowDefinitions>
             <RowDefinition Height="Auto" />
             <RowDefinition Height="Auto" />
             <RowDefinition Height="Auto" />
         </Grid.RowDefinitions>
         <TextBlock HorizontalAlignment="Center" Text="{Binding Message}" />
-        <TextBox MaxLength="{Binding MaxLength}" Grid.Row="1" Margin="10" Width="300" HorizontalAlignment="Center"
-                 Text="{Binding Input, Mode=TwoWay}" />
-        <TextBlock Grid.Row="2" Margin="5, 5, 5, 10" HorizontalAlignment="Center" Text="{Binding SubMessage}" />
+        <TextBox
+            Grid.Row="1"
+            Width="300"
+            Margin="10"
+            HorizontalAlignment="Center"
+            MaxLength="{Binding MaxLength}"
+            Text="{Binding Input, Mode=TwoWay}" />
+        <TextBlock
+            Grid.Row="2"
+            Margin="5,5,5,10"
+            HorizontalAlignment="Center"
+            Text="{Binding SubMessage}" />
     </Grid>
 </UserControl>

+ 31 - 17
Ryujinx.Ava/Ui/Controls/UpdateWaitWindow.axaml

@@ -1,14 +1,18 @@
-<Window xmlns="https://github.com/avaloniaui"
-        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
-        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
-        xmlns:window="clr-namespace:Ryujinx.Ava.Ui.Windows"
-        mc:Ignorable="d"
-        x:Class="Ryujinx.Ava.Ui.Controls.UpdateWaitWindow"
-        WindowStartupLocation="CenterOwner"
-        SizeToContent="WidthAndHeight"
-        Title="Ryujinx - Waiting">
-    <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="20">
+<Window
+    x:Class="Ryujinx.Ava.Ui.Controls.UpdateWaitWindow"
+    xmlns="https://github.com/avaloniaui"
+    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+    xmlns:window="clr-namespace:Ryujinx.Ava.Ui.Windows"
+    Title="Ryujinx - Waiting"
+    SizeToContent="WidthAndHeight"
+    WindowStartupLocation="CenterOwner"
+    mc:Ignorable="d">
+    <Grid
+        Margin="20"
+        HorizontalAlignment="Stretch"
+        VerticalAlignment="Stretch">
         <Grid.RowDefinitions>
             <RowDefinition Height="Auto" />
             <RowDefinition Height="Auto" />
@@ -17,12 +21,22 @@
             <ColumnDefinition Width="Auto" />
             <ColumnDefinition />
         </Grid.ColumnDefinitions>
-        <Image Grid.Row="1" Margin="5, 10, 20 , 10" Source="resm:Ryujinx.Ui.Common.Resources.Logo_Ryujinx.png?assembly=Ryujinx.Ui.Common"
-               Height="70"
-               MinWidth="50" />
-        <StackPanel Grid.Row="1"  Grid.Column="1" VerticalAlignment="Center" Orientation="Vertical">
-            <TextBlock Margin="5" Name="PrimaryText" />
-            <TextBlock VerticalAlignment="Center" Name="SecondaryText" Margin="5" />
+        <Image
+            Grid.Row="1"
+            Height="70"
+            MinWidth="50"
+            Margin="5,10,20,10"
+            Source="resm:Ryujinx.Ui.Common.Resources.Logo_Ryujinx.png?assembly=Ryujinx.Ui.Common" />
+        <StackPanel
+            Grid.Row="1"
+            Grid.Column="1"
+            VerticalAlignment="Center"
+            Orientation="Vertical">
+            <TextBlock Name="PrimaryText" Margin="5" />
+            <TextBlock
+                Name="SecondaryText"
+                Margin="5"
+                VerticalAlignment="Center" />
         </StackPanel>
     </Grid>
 </Window>

+ 202 - 83
Ryujinx.Ava/Ui/Windows/AboutWindow.axaml

@@ -1,28 +1,41 @@
-<window:StyleableWindow xmlns="https://github.com/avaloniaui"
-                        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-                        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
-                        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
-                        mc:Ignorable="d" d:DesignWidth="400" d:DesignHeight="350"
-                        x:Class="Ryujinx.Ava.Ui.Windows.AboutWindow"
-                        xmlns:window="clr-namespace:Ryujinx.Ava.Ui.Windows"
-                        xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale"
-                        CanResize="False"
-                        WindowStartupLocation="CenterOwner"
-                        Width="850" MinHeight="550" Height="550"
-                        SizeToContent="Width"
-                        MinWidth="500"
-                        Title="Ryujinx - About">
-    <Grid Margin="15" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
+<window:StyleableWindow
+    x:Class="Ryujinx.Ava.Ui.Windows.AboutWindow"
+    xmlns="https://github.com/avaloniaui"
+    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+    xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale"
+    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+    xmlns:window="clr-namespace:Ryujinx.Ava.Ui.Windows"
+    Title="Ryujinx - About"
+    Width="850"
+    Height="550"
+    MinWidth="500"
+    MinHeight="550"
+    d:DesignHeight="350"
+    d:DesignWidth="400"
+    CanResize="False"
+    SizeToContent="Width"
+    WindowStartupLocation="CenterOwner"
+    mc:Ignorable="d">
+    <Grid
+        Margin="15"
+        HorizontalAlignment="Stretch"
+        VerticalAlignment="Stretch">
         <Grid.RowDefinitions>
-            <RowDefinition Height="Auto"/>
-            <RowDefinition Height="*"/>
+            <RowDefinition Height="Auto" />
+            <RowDefinition Height="*" />
         </Grid.RowDefinitions>
         <Grid.ColumnDefinitions>
             <ColumnDefinition Width="Auto" />
             <ColumnDefinition Width="Auto" />
             <ColumnDefinition Width="*" />
         </Grid.ColumnDefinitions>
-        <Grid Grid.Row="1" Margin="20" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Grid.Column="0">
+        <Grid
+            Grid.Row="1"
+            Grid.Column="0"
+            Margin="20"
+            HorizontalAlignment="Stretch"
+            VerticalAlignment="Stretch">
             <Grid.RowDefinitions>
                 <RowDefinition Height="*" />
                 <RowDefinition Height="*" />
@@ -40,93 +53,168 @@
                     <RowDefinition Height="Auto" />
                     <RowDefinition Height="Auto" />
                 </Grid.RowDefinitions>
-                <Image Grid.Row="0" Grid.Column="0" Grid.RowSpan="3" Margin="5, 10, 20 , 10"
-                       Source="resm:Ryujinx.Ui.Common.Resources.Logo_Ryujinx.png?assembly=Ryujinx.Ui.Common" Height="110" MinWidth="50" />
-                <TextBlock FontSize="35" TextAlignment="Center" Grid.Row="0" Grid.Column="1" Text="Ryujinx"
-                           Margin="0,20,0,0" />
-                <TextBlock FontSize="16" TextAlignment="Center" Grid.Row="1" Grid.Column="1" Text="(REE-YOU-JINX)"
-                           Margin="0,0,0,0" />
-                <Button Grid.Column="1" Background="Transparent" HorizontalAlignment="Center" Margin="0" Grid.Row="2"
-                        Tag="https://www.ryujinx.org/"
-                        Click="Button_OnClick">
-                    <TextBlock ToolTip.Tip="{locale:Locale AboutUrlTooltipMessage}"
-                               TextAlignment="Center" TextDecorations="Underline" Text="www.ryujinx.org" />
+                <Image
+                    Grid.Row="0"
+                    Grid.RowSpan="3"
+                    Grid.Column="0"
+                    Height="110"
+                    MinWidth="50"
+                    Margin="5,10,20,10"
+                    Source="resm:Ryujinx.Ui.Common.Resources.Logo_Ryujinx.png?assembly=Ryujinx.Ui.Common" />
+                <TextBlock
+                    Grid.Row="0"
+                    Grid.Column="1"
+                    Margin="0,20,0,0"
+                    FontSize="35"
+                    Text="Ryujinx"
+                    TextAlignment="Center" />
+                <TextBlock
+                    Grid.Row="1"
+                    Grid.Column="1"
+                    Margin="0,0,0,0"
+                    FontSize="16"
+                    Text="(REE-YOU-JINX)"
+                    TextAlignment="Center" />
+                <Button
+                    Grid.Row="2"
+                    Grid.Column="1"
+                    Margin="0"
+                    HorizontalAlignment="Center"
+                    Background="Transparent"
+                    Click="Button_OnClick"
+                    Tag="https://www.ryujinx.org/">
+                    <TextBlock
+                        Text="www.ryujinx.org"
+                        TextAlignment="Center"
+                        TextDecorations="Underline"
+                        ToolTip.Tip="{locale:Locale AboutUrlTooltipMessage}" />
                 </Button>
             </Grid>
-            <TextBlock TextAlignment="Center" VerticalAlignment="Center" HorizontalAlignment="Center"
-                       Text="{Binding Version}" Grid.Row="1" />
-            <TextBlock Grid.Row="2" TextAlignment="Center" HorizontalAlignment="Center" Margin="20"
-                       Text="{locale:Locale AboutDisclaimerMessage}"
-                       MaxLines="2" />
-            <TextBlock Grid.Row="3" TextAlignment="Center" HorizontalAlignment="Center" Margin="20"
-                       Text="{locale:Locale AboutAmiiboDisclaimerMessage}"
-                       Name="AmiiboLabel"
-                       PointerPressed="AmiiboLabel_OnPointerPressed"
-                       MaxLines="2" />
-            <StackPanel Spacing="10" Orientation="Horizontal" Grid.Row="4" HorizontalAlignment="Center">
-                <StackPanel Orientation="Vertical"
-                            ToolTip.Tip="{locale:Locale AboutPatreonUrlTooltipMessage}">
-                    <Button Height="65" Background="Transparent" Tag="https://www.patreon.com/ryujinx"
-                            Click="Button_OnClick">
+            <TextBlock
+                Grid.Row="1"
+                HorizontalAlignment="Center"
+                VerticalAlignment="Center"
+                Text="{Binding Version}"
+                TextAlignment="Center" />
+            <TextBlock
+                Grid.Row="2"
+                Margin="20"
+                HorizontalAlignment="Center"
+                MaxLines="2"
+                Text="{locale:Locale AboutDisclaimerMessage}"
+                TextAlignment="Center" />
+            <TextBlock
+                Name="AmiiboLabel"
+                Grid.Row="3"
+                Margin="20"
+                HorizontalAlignment="Center"
+                MaxLines="2"
+                PointerPressed="AmiiboLabel_OnPointerPressed"
+                Text="{locale:Locale AboutAmiiboDisclaimerMessage}"
+                TextAlignment="Center" />
+            <StackPanel
+                Grid.Row="4"
+                HorizontalAlignment="Center"
+                Orientation="Horizontal"
+                Spacing="10">
+                <StackPanel Orientation="Vertical" ToolTip.Tip="{locale:Locale AboutPatreonUrlTooltipMessage}">
+                    <Button
+                        Height="65"
+                        Background="Transparent"
+                        Click="Button_OnClick"
+                        Tag="https://www.patreon.com/ryujinx">
                         <Grid>
                             <Grid.RowDefinitions>
                                 <RowDefinition />
                                 <RowDefinition Height="Auto" />
                             </Grid.RowDefinitions>
                             <Image Source="resm:Ryujinx.Ui.Common.Resources.Logo_Patreon.png?assembly=Ryujinx.Ui.Common" />
-                            <TextBlock Grid.Row="1" Margin="0,5,0,0" Text="Patreon" HorizontalAlignment="Center" />
+                            <TextBlock
+                                Grid.Row="1"
+                                Margin="0,5,0,0"
+                                HorizontalAlignment="Center"
+                                Text="Patreon" />
                         </Grid>
                     </Button>
                 </StackPanel>
-                <StackPanel Orientation="Vertical"
-                            ToolTip.Tip="{locale:Locale AboutGithubUrlTooltipMessage}">
-                    <Button Height="65" Background="Transparent" Tag="https://github.com/Ryujinx/Ryujinx"
-                            Click="Button_OnClick">
+                <StackPanel Orientation="Vertical" ToolTip.Tip="{locale:Locale AboutGithubUrlTooltipMessage}">
+                    <Button
+                        Height="65"
+                        Background="Transparent"
+                        Click="Button_OnClick"
+                        Tag="https://github.com/Ryujinx/Ryujinx">
                         <Grid>
                             <Grid.RowDefinitions>
                                 <RowDefinition />
                                 <RowDefinition Height="Auto" />
                             </Grid.RowDefinitions>
                             <Image Source="resm:Ryujinx.Ui.Common.Resources.Logo_GitHub.png?assembly=Ryujinx.Ui.Common" />
-                            <TextBlock Grid.Row="1" Margin="0,5,0,0" Text="GitHub" HorizontalAlignment="Center" />
+                            <TextBlock
+                                Grid.Row="1"
+                                Margin="0,5,0,0"
+                                HorizontalAlignment="Center"
+                                Text="GitHub" />
                         </Grid>
                     </Button>
                 </StackPanel>
-                <StackPanel Orientation="Vertical"
-                            ToolTip.Tip="{locale:Locale AboutDiscordUrlTooltipMessage}">
-                    <Button Height="65" Background="Transparent" Tag="https://discordapp.com/invite/N2FmfVc"
-                            Click="Button_OnClick">
+                <StackPanel Orientation="Vertical" ToolTip.Tip="{locale:Locale AboutDiscordUrlTooltipMessage}">
+                    <Button
+                        Height="65"
+                        Background="Transparent"
+                        Click="Button_OnClick"
+                        Tag="https://discordapp.com/invite/N2FmfVc">
                         <Grid>
                             <Grid.RowDefinitions>
                                 <RowDefinition />
                                 <RowDefinition Height="Auto" />
                             </Grid.RowDefinitions>
                             <Image Source="resm:Ryujinx.Ui.Common.Resources.Logo_Discord.png?assembly=Ryujinx.Ui.Common" />
-                            <TextBlock Grid.Row="1" Margin="0,5,0,0" Text="Discord" HorizontalAlignment="Center" />
+                            <TextBlock
+                                Grid.Row="1"
+                                Margin="0,5,0,0"
+                                HorizontalAlignment="Center"
+                                Text="Discord" />
                         </Grid>
                     </Button>
                 </StackPanel>
-                <StackPanel Orientation="Vertical"
-                            ToolTip.Tip="{locale:Locale AboutTwitterUrlTooltipMessage}">
-                    <Button Height="65" Background="Transparent" Tag="https://twitter.com/RyujinxEmu"
-                            Click="Button_OnClick">
+                <StackPanel Orientation="Vertical" ToolTip.Tip="{locale:Locale AboutTwitterUrlTooltipMessage}">
+                    <Button
+                        Height="65"
+                        Background="Transparent"
+                        Click="Button_OnClick"
+                        Tag="https://twitter.com/RyujinxEmu">
                         <Grid>
                             <Grid.RowDefinitions>
                                 <RowDefinition />
                                 <RowDefinition Height="Auto" />
                             </Grid.RowDefinitions>
                             <Image Source="resm:Ryujinx.Ui.Common.Resources.Logo_Twitter.png?assembly=Ryujinx.Ui.Common" />
-                            <TextBlock Grid.Row="1" Margin="0,5,0,0" Text="Twitter" HorizontalAlignment="Center" />
+                            <TextBlock
+                                Grid.Row="1"
+                                Margin="0,5,0,0"
+                                HorizontalAlignment="Center"
+                                Text="Twitter" />
                         </Grid>
                     </Button>
                 </StackPanel>
             </StackPanel>
         </Grid>
-        <Border Grid.Row="1" Grid.Column="1" VerticalAlignment="Stretch" Margin="5" Width="2" BorderBrush="White"
-                BorderThickness="1,0,0,0">
+        <Border
+            Grid.Row="1"
+            Grid.Column="1"
+            Width="2"
+            Margin="5"
+            VerticalAlignment="Stretch"
+            BorderBrush="White"
+            BorderThickness="1,0,0,0">
             <Separator Width="0" />
         </Border>
-        <Grid Grid.Row="1" Margin="20" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Grid.Column="2">
+        <Grid
+            Grid.Row="1"
+            Grid.Column="2"
+            Margin="20"
+            HorizontalAlignment="Stretch"
+            VerticalAlignment="Stretch">
             <Grid.RowDefinitions>
                 <RowDefinition Height="Auto" />
                 <RowDefinition Height="Auto" />
@@ -136,27 +224,58 @@
                 <RowDefinition Height="Auto" />
                 <RowDefinition Height="Auto" />
             </Grid.RowDefinitions>
-            <TextBlock Text="{locale:Locale AboutRyujinxAboutTitle}" FontWeight="Bold" TextDecorations="Underline" />
-            <TextBlock LineHeight="20" Grid.Row="1" Margin="20,5,5,5"
-                       Text="{locale:Locale AboutRyujinxAboutContent}" />
-            <TextBlock Grid.Row="2" Margin="0,10,0,0" Text="{locale:Locale AboutRyujinxMaintainersTitle}"
-                       FontWeight="Bold"
-                       TextDecorations="Underline" />
-            <TextBlock LineHeight="20" Grid.Row="3" Margin="20,5,5,5"
-                       Text="{Binding Developers}" />
-            <Button Background="Transparent" HorizontalAlignment="Right" Grid.Row="4"
-                    Tag="https://github.com/Ryujinx/Ryujinx/graphs/contributors?type=a" Click="Button_OnClick">
-                <TextBlock ToolTip.Tip="{locale:Locale AboutRyujinxMaintainersContentTooltipMessage}"
-                           TextAlignment="Right" TextDecorations="Underline"
-                           Text="{locale:Locale AboutRyujinxContributorsButtonHeader}" />
+            <TextBlock
+                FontWeight="Bold"
+                Text="{locale:Locale AboutRyujinxAboutTitle}"
+                TextDecorations="Underline" />
+            <TextBlock
+                Grid.Row="1"
+                Margin="20,5,5,5"
+                LineHeight="20"
+                Text="{locale:Locale AboutRyujinxAboutContent}" />
+            <TextBlock
+                Grid.Row="2"
+                Margin="0,10,0,0"
+                FontWeight="Bold"
+                Text="{locale:Locale AboutRyujinxMaintainersTitle}"
+                TextDecorations="Underline" />
+            <TextBlock
+                Grid.Row="3"
+                Margin="20,5,5,5"
+                LineHeight="20"
+                Text="{Binding Developers}" />
+            <Button
+                Grid.Row="4"
+                HorizontalAlignment="Right"
+                Background="Transparent"
+                Click="Button_OnClick"
+                Tag="https://github.com/Ryujinx/Ryujinx/graphs/contributors?type=a">
+                <TextBlock
+                    Text="{locale:Locale AboutRyujinxContributorsButtonHeader}"
+                    TextAlignment="Right"
+                    TextDecorations="Underline"
+                    ToolTip.Tip="{locale:Locale AboutRyujinxMaintainersContentTooltipMessage}" />
             </Button>
-            <TextBlock Grid.Row="5" Margin="0,0,0,0" Text="{locale:Locale AboutRyujinxSupprtersTitle}"
-                       FontWeight="Bold"
-                       TextDecorations="Underline" />
-            <Border Width="460" Grid.Row="6" VerticalAlignment="Stretch" Height="200" BorderThickness="1" Margin="20,5"
-                    BorderBrush="White" Padding="5">
-                <TextBlock TextWrapping="Wrap" VerticalAlignment="Top" Name="SupportersTextBlock"
-                           Text="{Binding Supporters}" />
+            <TextBlock
+                Grid.Row="5"
+                Margin="0,0,0,0"
+                FontWeight="Bold"
+                Text="{locale:Locale AboutRyujinxSupprtersTitle}"
+                TextDecorations="Underline" />
+            <Border
+                Grid.Row="6"
+                Width="460"
+                Height="200"
+                Margin="20,5"
+                Padding="5"
+                VerticalAlignment="Stretch"
+                BorderBrush="White"
+                BorderThickness="1">
+                <TextBlock
+                    Name="SupportersTextBlock"
+                    VerticalAlignment="Top"
+                    Text="{Binding Supporters}"
+                    TextWrapping="Wrap" />
             </Border>
         </Grid>
     </Grid>

+ 378 - 276
Ryujinx.Ava/Ui/Windows/MainWindow.axaml

@@ -1,25 +1,25 @@
 <window:StyleableWindow
     x:Class="Ryujinx.Ava.Ui.Windows.MainWindow"
     xmlns="https://github.com/avaloniaui"
-    xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-    xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale"
     xmlns:controls="clr-namespace:Ryujinx.Ava.Ui.Controls"
-    xmlns:models="clr-namespace:Ryujinx.Ava.Ui.Models"
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+    xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale"
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+    xmlns:models="clr-namespace:Ryujinx.Ava.Ui.Models"
+    xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
     xmlns:viewModels="clr-namespace:Ryujinx.Ava.Ui.ViewModels"
     xmlns:window="clr-namespace:Ryujinx.Ava.Ui.Windows"
     Title="Ryujinx"
-    Height="785"
     Width="1280"
-    d:DesignHeight="720"
-    d:DesignWidth="1280"
+    Height="785"
     MinWidth="1024"
     MinHeight="680"
-    WindowStartupLocation="CenterScreen"
+    d:DesignHeight="720"
+    d:DesignWidth="1280"
     x:CompileBindings="True"
     x:DataType="viewModels:MainWindowViewModel"
+    WindowStartupLocation="CenterScreen"
     mc:Ignorable="d">
     <Window.Styles>
         <Style Selector="TitleBar:fullscreen">
@@ -38,23 +38,28 @@
             <RowDefinition Height="*" />
         </Grid.RowDefinitions>
         <controls:OffscreenTextBox Name="HiddenTextBox" Grid.Row="0" />
-        <ContentControl Grid.Row="1"
-                        Focusable="False"
-                        IsVisible="False"
-                        KeyboardNavigation.IsTabStop="False">
-            <ui:ContentDialog Name="ContentDialog"
-                              KeyboardNavigation.IsTabStop="False"
-                              IsPrimaryButtonEnabled="True"
-                              IsSecondaryButtonEnabled="True"
-                              IsVisible="True" />
+        <ContentControl
+            Grid.Row="1"
+            Focusable="False"
+            IsVisible="False"
+            KeyboardNavigation.IsTabStop="False">
+            <ui:ContentDialog
+                Name="ContentDialog"
+                IsPrimaryButtonEnabled="True"
+                IsSecondaryButtonEnabled="True"
+                IsVisible="True"
+                KeyboardNavigation.IsTabStop="False" />
         </ContentControl>
-        <StackPanel IsVisible="False" Grid.Row="0">
+        <StackPanel Grid.Row="0" IsVisible="False">
             <controls:HotKeyControl Name="FullscreenHotKey" Command="{ReflectionBinding ToggleFullscreen}" />
             <controls:HotKeyControl Name="FullscreenHotKey2" Command="{ReflectionBinding ToggleFullscreen}" />
             <controls:HotKeyControl Name="DockToggleHotKey" Command="{ReflectionBinding ToggleDockMode}" />
             <controls:HotKeyControl Name="ExitHotKey" Command="{ReflectionBinding ExitCurrentState}" />
         </StackPanel>
-        <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.Row="1">
+        <Grid
+            Grid.Row="1"
+            HorizontalAlignment="Stretch"
+            VerticalAlignment="Stretch">
             <Grid.ColumnDefinitions>
                 <ColumnDefinition Width="*" />
             </Grid.ColumnDefinitions>
@@ -73,47 +78,51 @@
                 <DockPanel HorizontalAlignment="Stretch">
                     <Menu
                         Name="Menu"
-                        Margin="0"
                         Height="35"
+                        Margin="0"
                         HorizontalAlignment="Left">
                         <Menu.ItemsPanel>
                             <ItemsPanelTemplate>
-                                <DockPanel HorizontalAlignment="Stretch" Margin="0" />
+                                <DockPanel Margin="0" HorizontalAlignment="Stretch" />
                             </ItemsPanelTemplate>
                         </Menu.ItemsPanel>
-                        <MenuItem
-                            VerticalAlignment="Center"
-                            Header="{locale:Locale MenuBarFile}">
-                            <MenuItem IsEnabled="{Binding EnableNonGameRunningControls}"
-                                      Command="{ReflectionBinding OpenFile}"
-                                      Header="{locale:Locale MenuBarFileOpenFromFile}"
-                                      ToolTip.Tip="{locale:Locale LoadApplicationFileTooltip}" />
-                            <MenuItem IsEnabled="{Binding EnableNonGameRunningControls}"
-                                      Command="{ReflectionBinding OpenFolder}"
-                                      Header="{locale:Locale MenuBarFileOpenUnpacked}"
-                                      ToolTip.Tip="{locale:Locale LoadApplicationFolderTooltip}" />
-                            <MenuItem Header="{locale:Locale MenuBarFileOpenApplet}"
-                                      IsEnabled="{Binding IsAppletMenuActive}">
-                                <MenuItem Command="{ReflectionBinding OpenMiiApplet}" Header="Mii Edit Applet"
-                                          ToolTip.Tip="{locale:Locale MenuBarFileOpenAppletOpenMiiAppletToolTip}" />
+                        <MenuItem VerticalAlignment="Center" Header="{locale:Locale MenuBarFile}">
+                            <MenuItem
+                                Command="{ReflectionBinding OpenFile}"
+                                Header="{locale:Locale MenuBarFileOpenFromFile}"
+                                IsEnabled="{Binding EnableNonGameRunningControls}"
+                                ToolTip.Tip="{locale:Locale LoadApplicationFileTooltip}" />
+                            <MenuItem
+                                Command="{ReflectionBinding OpenFolder}"
+                                Header="{locale:Locale MenuBarFileOpenUnpacked}"
+                                IsEnabled="{Binding EnableNonGameRunningControls}"
+                                ToolTip.Tip="{locale:Locale LoadApplicationFolderTooltip}" />
+                            <MenuItem Header="{locale:Locale MenuBarFileOpenApplet}" IsEnabled="{Binding IsAppletMenuActive}">
+                                <MenuItem
+                                    Command="{ReflectionBinding OpenMiiApplet}"
+                                    Header="Mii Edit Applet"
+                                    ToolTip.Tip="{locale:Locale MenuBarFileOpenAppletOpenMiiAppletToolTip}" />
                             </MenuItem>
                             <Separator />
-                            <MenuItem Command="{ReflectionBinding OpenRyujinxFolder}"
-                                      Header="{locale:Locale MenuBarFileOpenEmuFolder}"
-                                      ToolTip.Tip="{locale:Locale OpenRyujinxFolderTooltip}" />
-                            <MenuItem Command="{ReflectionBinding OpenLogsFolder}"
-                                      Header="{locale:Locale MenuBarFileOpenLogsFolder}"
-                                      ToolTip.Tip="{locale:Locale OpenRyujinxLogsTooltip}" />
+                            <MenuItem
+                                Command="{ReflectionBinding OpenRyujinxFolder}"
+                                Header="{locale:Locale MenuBarFileOpenEmuFolder}"
+                                ToolTip.Tip="{locale:Locale OpenRyujinxFolderTooltip}" />
+                            <MenuItem
+                                Command="{ReflectionBinding OpenLogsFolder}"
+                                Header="{locale:Locale MenuBarFileOpenLogsFolder}"
+                                ToolTip.Tip="{locale:Locale OpenRyujinxLogsTooltip}" />
                             <Separator />
-                            <MenuItem Command="{ReflectionBinding CloseWindow}"
-                                      Header="{locale:Locale MenuBarFileExit}"
-                                      ToolTip.Tip="{locale:Locale ExitTooltip}" />
+                            <MenuItem
+                                Command="{ReflectionBinding CloseWindow}"
+                                Header="{locale:Locale MenuBarFileExit}"
+                                ToolTip.Tip="{locale:Locale ExitTooltip}" />
                         </MenuItem>
-                        <MenuItem
-                            VerticalAlignment="Center"
-                            Header="{locale:Locale MenuBarOptions}">
-                            <MenuItem Command="{ReflectionBinding ToggleFullscreen}"
-                                      Header="{locale:Locale MenuBarOptionsToggleFullscreen}" InputGesture="F11" />
+                        <MenuItem VerticalAlignment="Center" Header="{locale:Locale MenuBarOptions}">
+                            <MenuItem
+                                Command="{ReflectionBinding ToggleFullscreen}"
+                                Header="{locale:Locale MenuBarOptionsToggleFullscreen}"
+                                InputGesture="F11" />
                             <MenuItem Header="{locale:Locale MenuBarOptionsStartGamesInFullscreen}">
                                 <MenuItem.Icon>
                                     <CheckBox IsChecked="{Binding StartGamesInFullscreen, Mode=TwoWay}" />
@@ -126,60 +135,82 @@
                             </MenuItem>
                             <Separator />
                             <MenuItem Header="{locale:Locale MenuBarOptionsChangeLanguage}">
-                                <MenuItem Command="{ReflectionBinding ChangeLanguage}" CommandParameter="en_US"
-                                          Header="American English" />
-                                <MenuItem Command="{ReflectionBinding ChangeLanguage}" CommandParameter="pt_BR"
-                                          Header="Brazilian Portuguese" />
-                                <MenuItem Command="{ReflectionBinding ChangeLanguage}" CommandParameter="es_ES"
-                                          Header="Castilian Spanish" />
-                                <MenuItem Command="{ReflectionBinding ChangeLanguage}" CommandParameter="fr_FR"
-                                          Header="French" />
-                                <MenuItem Command="{ReflectionBinding ChangeLanguage}" CommandParameter="de_DE"
-                                          Header="German" />
-                                <MenuItem Command="{ReflectionBinding ChangeLanguage}" CommandParameter="el_GR"
-                                          Header="Greek" />
-                                <MenuItem Command="{ReflectionBinding ChangeLanguage}" CommandParameter="it_IT"
-                                          Header="Italian" />
-                                <MenuItem Command="{ReflectionBinding ChangeLanguage}" CommandParameter="ko_KR"
-                                          Header="Korean" />
-                                <MenuItem Command="{ReflectionBinding ChangeLanguage}" CommandParameter="ru_RU"
-                                          Header="Russian" />
-                                <MenuItem Command="{ReflectionBinding ChangeLanguage}" CommandParameter="tr_TR"
-                                          Header="Turkish" />
+                                <MenuItem
+                                    Command="{ReflectionBinding ChangeLanguage}"
+                                    CommandParameter="en_US"
+                                    Header="American English" />
+                                <MenuItem
+                                    Command="{ReflectionBinding ChangeLanguage}"
+                                    CommandParameter="pt_BR"
+                                    Header="Brazilian Portuguese" />
+                                <MenuItem
+                                    Command="{ReflectionBinding ChangeLanguage}"
+                                    CommandParameter="es_ES"
+                                    Header="Castilian Spanish" />
+                                <MenuItem
+                                    Command="{ReflectionBinding ChangeLanguage}"
+                                    CommandParameter="fr_FR"
+                                    Header="French" />
+                                <MenuItem
+                                    Command="{ReflectionBinding ChangeLanguage}"
+                                    CommandParameter="de_DE"
+                                    Header="German" />
+                                <MenuItem
+                                    Command="{ReflectionBinding ChangeLanguage}"
+                                    CommandParameter="el_GR"
+                                    Header="Greek" />
+                                <MenuItem
+                                    Command="{ReflectionBinding ChangeLanguage}"
+                                    CommandParameter="it_IT"
+                                    Header="Italian" />
+                                <MenuItem
+                                    Command="{ReflectionBinding ChangeLanguage}"
+                                    CommandParameter="ko_KR"
+                                    Header="Korean" />
+                                <MenuItem
+                                    Command="{ReflectionBinding ChangeLanguage}"
+                                    CommandParameter="ru_RU"
+                                    Header="Russian" />
+                                <MenuItem
+                                    Command="{ReflectionBinding ChangeLanguage}"
+                                    CommandParameter="tr_TR"
+                                    Header="Turkish" />
                             </MenuItem>
                             <Separator />
-                            <MenuItem Command="{ReflectionBinding OpenSettings}"
-                                      Header="{locale:Locale MenuBarOptionsSettings}"
-                                      ToolTip.Tip="{locale:Locale OpenSettingsTooltip}" />
-                            <MenuItem Command="{ReflectionBinding ManageProfiles}"
-                                      IsEnabled="{Binding EnableNonGameRunningControls}"
-                                      Header="{locale:Locale MenuBarOptionsManageUserProfiles}"
-                                      ToolTip.Tip="{locale:Locale OpenProfileManagerTooltip}" />
+                            <MenuItem
+                                Command="{ReflectionBinding OpenSettings}"
+                                Header="{locale:Locale MenuBarOptionsSettings}"
+                                ToolTip.Tip="{locale:Locale OpenSettingsTooltip}" />
+                            <MenuItem
+                                Command="{ReflectionBinding ManageProfiles}"
+                                Header="{locale:Locale MenuBarOptionsManageUserProfiles}"
+                                IsEnabled="{Binding EnableNonGameRunningControls}"
+                                ToolTip.Tip="{locale:Locale OpenProfileManagerTooltip}" />
                         </MenuItem>
                         <MenuItem
+                            Name="ActionsMenuItem"
                             VerticalAlignment="Center"
                             Header="{locale:Locale MenuBarActions}"
-                            Name="ActionsMenuItem"
                             IsEnabled="{Binding IsGameRunning}">
                             <MenuItem
                                 Click="PauseEmulation_Click"
                                 Header="{locale:Locale MenuBarOptionsPauseEmulation}"
+                                InputGesture="{Binding PauseKey}"
                                 IsEnabled="{Binding !IsPaused}"
-                                IsVisible="{Binding !IsPaused}"
-                                InputGesture="{Binding PauseKey}" />
+                                IsVisible="{Binding !IsPaused}" />
                             <MenuItem
                                 Click="ResumeEmulation_Click"
                                 Header="{locale:Locale MenuBarOptionsResumeEmulation}"
+                                InputGesture="{Binding PauseKey}"
                                 IsEnabled="{Binding IsPaused}"
-                                IsVisible="{Binding IsPaused}"
-                                InputGesture="{Binding PauseKey}" />
+                                IsVisible="{Binding IsPaused}" />
                             <MenuItem
                                 Click="StopEmulation_Click"
                                 Header="{locale:Locale MenuBarOptionsStopEmulation}"
-                                ToolTip.Tip="{locale:Locale StopEmulationTooltip}"
-                                IsEnabled="{Binding IsGameRunning}" InputGesture="Escape" />
-                            <MenuItem Command="{ReflectionBinding SimulateWakeUpMessage}"
-                                      Header="{locale:Locale MenuBarOptionsSimulateWakeUpMessage}" />
+                                InputGesture="Escape"
+                                IsEnabled="{Binding IsGameRunning}"
+                                ToolTip.Tip="{locale:Locale StopEmulationTooltip}" />
+                            <MenuItem Command="{ReflectionBinding SimulateWakeUpMessage}" Header="{locale:Locale MenuBarOptionsSimulateWakeUpMessage}" />
                             <Separator />
                             <MenuItem
                                 Name="ScanAmiiboMenuItem"
@@ -187,41 +218,38 @@
                                 Command="{ReflectionBinding OpenAmiiboWindow}"
                                 Header="{locale:Locale MenuBarActionsScanAmiibo}"
                                 IsEnabled="{Binding IsAmiiboRequested}" />
-                            <MenuItem Command="{ReflectionBinding TakeScreenshot}"
-                                      IsEnabled="{Binding IsGameRunning}"
-                                      Header="{locale:Locale MenuBarFileToolsTakeScreenshot}"
-                                      InputGesture="{Binding ScreenshotKey}" />
-                            <MenuItem Command="{ReflectionBinding HideUi}"
-                                      IsEnabled="{Binding IsGameRunning}"
-                                      Header="{locale:Locale MenuBarFileToolsHideUi}"
-                                      InputGesture="{Binding ShowUiKey}" />
-                            <MenuItem Command="{ReflectionBinding  OpenCheatManagerForCurrentApp}"
-                                      IsEnabled="{Binding IsGameRunning}"
-                                      Header="{locale:Locale GameListContextMenuManageCheat}" />
+                            <MenuItem
+                                Command="{ReflectionBinding TakeScreenshot}"
+                                Header="{locale:Locale MenuBarFileToolsTakeScreenshot}"
+                                InputGesture="{Binding ScreenshotKey}"
+                                IsEnabled="{Binding IsGameRunning}" />
+                            <MenuItem
+                                Command="{ReflectionBinding HideUi}"
+                                Header="{locale:Locale MenuBarFileToolsHideUi}"
+                                InputGesture="{Binding ShowUiKey}"
+                                IsEnabled="{Binding IsGameRunning}" />
+                            <MenuItem
+                                Command="{ReflectionBinding OpenCheatManagerForCurrentApp}"
+                                Header="{locale:Locale GameListContextMenuManageCheat}"
+                                IsEnabled="{Binding IsGameRunning}" />
                         </MenuItem>
-                        <MenuItem
-                            VerticalAlignment="Center"
-                            Header="{locale:Locale MenuBarTools}">
-                            <MenuItem Header="{locale:Locale MenuBarToolsInstallFirmware}"
-                                      IsEnabled="{Binding EnableNonGameRunningControls}">
-                                <MenuItem Command="{ReflectionBinding InstallFirmwareFromFile}"
-                                          Header="{locale:Locale MenuBarFileToolsInstallFirmwareFromFile}" />
-                                <MenuItem Command="{ReflectionBinding InstallFirmwareFromFolder}"
-                                          Header="{locale:Locale MenuBarFileToolsInstallFirmwareFromDirectory}" />
+                        <MenuItem VerticalAlignment="Center" Header="{locale:Locale MenuBarTools}">
+                            <MenuItem Header="{locale:Locale MenuBarToolsInstallFirmware}" IsEnabled="{Binding EnableNonGameRunningControls}">
+                                <MenuItem Command="{ReflectionBinding InstallFirmwareFromFile}" Header="{locale:Locale MenuBarFileToolsInstallFirmwareFromFile}" />
+                                <MenuItem Command="{ReflectionBinding InstallFirmwareFromFolder}" Header="{locale:Locale MenuBarFileToolsInstallFirmwareFromDirectory}" />
                             </MenuItem>
                         </MenuItem>
-                        <MenuItem
-                            VerticalAlignment="Center"
-                            Header="{locale:Locale MenuBarHelp}">
+                        <MenuItem VerticalAlignment="Center" Header="{locale:Locale MenuBarHelp}">
                             <MenuItem
                                 Name="UpdateMenuItem"
                                 Command="{ReflectionBinding CheckForUpdates}"
                                 Header="{locale:Locale MenuBarHelpCheckForUpdates}"
                                 ToolTip.Tip="{locale:Locale CheckUpdatesTooltip}" />
                             <Separator />
-                            <MenuItem Command="{ReflectionBinding OpenAboutWindow}"
-                                      Header="{locale:Locale MenuBarHelpAbout}"
-                                      ToolTip.Tip="{locale:Locale OpenAboutTooltip}" />
+                            <MenuItem
+                                Command="{ReflectionBinding OpenAboutWindow}"
+                                Header="{locale:Locale MenuBarHelpAbout}"
+                                ToolTip.Tip="{locale:Locale OpenAboutTooltip}" />
                         </MenuItem>
                     </Menu>
                 </DockPanel>
@@ -230,152 +258,213 @@
                 Name="Content"
                 Grid.Row="1"
                 Padding="0"
-                IsVisible="{Binding ShowContent}"
                 HorizontalAlignment="Stretch"
                 VerticalAlignment="Stretch"
                 BorderBrush="{DynamicResource ThemeControlBorderColor}"
                 BorderThickness="0,0,0,0"
-                DockPanel.Dock="Top">
+                DockPanel.Dock="Top"
+                IsVisible="{Binding ShowContent}">
                 <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
                     <Grid.RowDefinitions>
                         <RowDefinition Height="Auto" />
                         <RowDefinition Height="*" />
                     </Grid.RowDefinitions>
-                    <DockPanel Grid.Row="0" HorizontalAlignment="Stretch" Margin="0,0,0,5">
+                    <DockPanel
+                        Grid.Row="0"
+                        Margin="0,0,0,5"
+                        HorizontalAlignment="Stretch">
                         <Button
-                            IsEnabled="{Binding IsGrid}" VerticalAlignment="Stretch" MinWidth="40" Width="40"
-                            Margin="5,2,0,2" Command="{ReflectionBinding SetListMode}">
-                            <ui:FontIcon FontFamily="avares://FluentAvalonia/Fonts#Symbols"
-                                         VerticalAlignment="Center"
-                                         Margin="0"
-                                         Glyph="{controls:GlyphValueConverter List}"
-                                         HorizontalAlignment="Stretch" />
+                            Width="40"
+                            MinWidth="40"
+                            Margin="5,2,0,2"
+                            VerticalAlignment="Stretch"
+                            Command="{ReflectionBinding SetListMode}"
+                            IsEnabled="{Binding IsGrid}">
+                            <ui:FontIcon
+                                Margin="0"
+                                HorizontalAlignment="Stretch"
+                                VerticalAlignment="Center"
+                                FontFamily="avares://FluentAvalonia/Fonts#Symbols"
+                                Glyph="{controls:GlyphValueConverter List}" />
                         </Button>
                         <Button
-                            IsEnabled="{Binding IsList}" VerticalAlignment="Stretch" MinWidth="40" Width="40"
-                            Margin="5,2,5,2" Command="{ReflectionBinding SetGridMode}">
-                            <ui:FontIcon FontFamily="avares://FluentAvalonia/Fonts#Symbols"
-                                         VerticalAlignment="Center"
-                                         Margin="0"
-                                         Glyph="{controls:GlyphValueConverter Grid}"
-                                         HorizontalAlignment="Stretch" />
+                            Width="40"
+                            MinWidth="40"
+                            Margin="5,2,5,2"
+                            VerticalAlignment="Stretch"
+                            Command="{ReflectionBinding SetGridMode}"
+                            IsEnabled="{Binding IsList}">
+                            <ui:FontIcon
+                                Margin="0"
+                                HorizontalAlignment="Stretch"
+                                VerticalAlignment="Center"
+                                FontFamily="avares://FluentAvalonia/Fonts#Symbols"
+                                Glyph="{controls:GlyphValueConverter Grid}" />
                         </Button>
-                        <TextBlock Text="{locale:Locale IconSize}"
-                                   VerticalAlignment="Center" Margin="10,0"
-                                   ToolTip.Tip="{locale:Locale IconSizeTooltip}" />
-                        <Slider Width="150" Margin="5,-10,5 ,0" Height="35"
-                                ToolTip.Tip="{locale:Locale IconSizeTooltip}"
-                                VerticalAlignment="Center" Minimum="1" Maximum="4" IsSnapToTickEnabled="True"
-                                TickFrequency="1" Value="{Binding GridSizeScale}" />
-                        <CheckBox Margin="0" IsChecked="{Binding ShowNames, Mode=TwoWay}" VerticalAlignment="Center"
-                                  IsVisible="{Binding IsGrid}">
-                            <TextBlock Text="{locale:Locale CommonShowNames}" Margin="5,3,0,0" />
+                        <TextBlock
+                            Margin="10,0"
+                            VerticalAlignment="Center"
+                            Text="{locale:Locale IconSize}"
+                            ToolTip.Tip="{locale:Locale IconSizeTooltip}" />
+                        <Slider
+                            Width="150"
+                            Height="35"
+                            Margin="5,-10,5,0"
+                            VerticalAlignment="Center"
+                            IsSnapToTickEnabled="True"
+                            Maximum="4"
+                            Minimum="1"
+                            TickFrequency="1"
+                            ToolTip.Tip="{locale:Locale IconSizeTooltip}"
+                            Value="{Binding GridSizeScale}" />
+                        <CheckBox
+                            Margin="0"
+                            VerticalAlignment="Center"
+                            IsChecked="{Binding ShowNames, Mode=TwoWay}"
+                            IsVisible="{Binding IsGrid}">
+                            <TextBlock Margin="5,3,0,0" Text="{locale:Locale CommonShowNames}" />
                         </CheckBox>
                         <TextBox
                             Name="SearchBox"
-                            DockPanel.Dock="Right"
-                            VerticalAlignment="Center"
                             MinWidth="200"
                             Margin="5,0,5,0"
                             HorizontalAlignment="Right"
+                            VerticalAlignment="Center"
+                            DockPanel.Dock="Right"
                             KeyUp="SearchBox_OnKeyUp"
                             Text="{Binding SearchText}"
                             Watermark="{locale:Locale MenuSearch}" />
-                        <ui:DropDownButton DockPanel.Dock="Right"
-                                           HorizontalAlignment="Right" Width="150" VerticalAlignment="Center"
-                                           Content="{Binding SortName}">
+                        <ui:DropDownButton
+                            Width="150"
+                            HorizontalAlignment="Right"
+                            VerticalAlignment="Center"
+                            Content="{Binding SortName}"
+                            DockPanel.Dock="Right">
                             <ui:DropDownButton.Flyout>
                                 <Flyout Placement="Bottom">
-                                    <StackPanel Orientation="Vertical" HorizontalAlignment="Stretch" Margin="0">
+                                    <StackPanel
+                                        Margin="0"
+                                        HorizontalAlignment="Stretch"
+                                        Orientation="Vertical">
                                         <StackPanel>
-                                            <RadioButton Tag="Favorite"
-                                                         IsChecked="{Binding IsSortedByFavorite, Mode=OneTime}"
-                                                         GroupName="Sort"
-                                                         Content="{locale:Locale CommonFavorite}"
-                                                         Checked="Sort_Checked" />
-                                            <RadioButton Tag="Title" GroupName="Sort"
-                                                         IsChecked="{Binding  IsSortedByTitle, Mode=OneTime}"
-                                                         Content="{locale:Locale GameListHeaderApplication}"
-                                                         Checked="Sort_Checked" />
-                                            <RadioButton Tag="Developer" GroupName="Sort"
-                                                         IsChecked="{Binding  IsSortedByDeveloper, Mode=OneTime}"
-                                                         Content="{locale:Locale GameListHeaderDeveloper}"
-                                                         Checked="Sort_Checked" />
-                                            <RadioButton Tag="TotalTimePlayed" GroupName="Sort"
-                                                         IsChecked="{Binding  IsSortedByTimePlayed, Mode=OneTime}"
-                                                         Content="{locale:Locale GameListHeaderTimePlayed}"
-                                                         Checked="Sort_Checked" />
-                                            <RadioButton Tag="LastPlayed" GroupName="Sort"
-                                                         IsChecked="{Binding IsSortedByLastPlayed, Mode=OneTime}"
-                                                         Content="{locale:Locale GameListHeaderLastPlayed}"
-                                                         Checked="Sort_Checked" />
-                                            <RadioButton Tag="FileType" GroupName="Sort"
-                                                         IsChecked="{Binding  IsSortedByType, Mode=OneTime}"
-                                                         Content="{locale:Locale GameListHeaderFileExtension}"
-                                                         Checked="Sort_Checked" />
-                                            <RadioButton Tag="FileSize" GroupName="Sort"
-                                                         IsChecked="{Binding IsSortedBySize, Mode=OneTime}"
-                                                         Content="{locale:Locale GameListHeaderFileSize}"
-                                                         Checked="Sort_Checked" />
-                                            <RadioButton Tag="Path" GroupName="Sort"
-                                                         IsChecked="{Binding IsSortedByPath, Mode=OneTime}"
-                                                         Content="{locale:Locale GameListHeaderPath}"
-                                                         Checked="Sort_Checked" />
+                                            <RadioButton
+                                                Checked="Sort_Checked"
+                                                Content="{locale:Locale CommonFavorite}"
+                                                GroupName="Sort"
+                                                IsChecked="{Binding IsSortedByFavorite, Mode=OneTime}"
+                                                Tag="Favorite" />
+                                            <RadioButton
+                                                Checked="Sort_Checked"
+                                                Content="{locale:Locale GameListHeaderApplication}"
+                                                GroupName="Sort"
+                                                IsChecked="{Binding IsSortedByTitle, Mode=OneTime}"
+                                                Tag="Title" />
+                                            <RadioButton
+                                                Checked="Sort_Checked"
+                                                Content="{locale:Locale GameListHeaderDeveloper}"
+                                                GroupName="Sort"
+                                                IsChecked="{Binding IsSortedByDeveloper, Mode=OneTime}"
+                                                Tag="Developer" />
+                                            <RadioButton
+                                                Checked="Sort_Checked"
+                                                Content="{locale:Locale GameListHeaderTimePlayed}"
+                                                GroupName="Sort"
+                                                IsChecked="{Binding IsSortedByTimePlayed, Mode=OneTime}"
+                                                Tag="TotalTimePlayed" />
+                                            <RadioButton
+                                                Checked="Sort_Checked"
+                                                Content="{locale:Locale GameListHeaderLastPlayed}"
+                                                GroupName="Sort"
+                                                IsChecked="{Binding IsSortedByLastPlayed, Mode=OneTime}"
+                                                Tag="LastPlayed" />
+                                            <RadioButton
+                                                Checked="Sort_Checked"
+                                                Content="{locale:Locale GameListHeaderFileExtension}"
+                                                GroupName="Sort"
+                                                IsChecked="{Binding IsSortedByType, Mode=OneTime}"
+                                                Tag="FileType" />
+                                            <RadioButton
+                                                Checked="Sort_Checked"
+                                                Content="{locale:Locale GameListHeaderFileSize}"
+                                                GroupName="Sort"
+                                                IsChecked="{Binding IsSortedBySize, Mode=OneTime}"
+                                                Tag="FileSize" />
+                                            <RadioButton
+                                                Checked="Sort_Checked"
+                                                Content="{locale:Locale GameListHeaderPath}"
+                                                GroupName="Sort"
+                                                IsChecked="{Binding IsSortedByPath, Mode=OneTime}"
+                                                Tag="Path" />
                                         </StackPanel>
-                                        <Border HorizontalAlignment="Stretch" Margin="5" Height="2" BorderBrush="White"
-                                                Width="60" BorderThickness="0,1,0,0">
-                                            <Separator HorizontalAlignment="Stretch" Height="0" />
+                                        <Border
+                                            Width="60"
+                                            Height="2"
+                                            Margin="5"
+                                            HorizontalAlignment="Stretch"
+                                            BorderBrush="White"
+                                            BorderThickness="0,1,0,0">
+                                            <Separator Height="0" HorizontalAlignment="Stretch" />
                                         </Border>
-                                        <RadioButton Tag="Ascending" IsChecked="{Binding IsAscending, Mode=OneTime}"
-                                                     GroupName="Order"
-                                                     Content="{locale:Locale OrderAscending}" Checked="Order_Checked" />
-                                        <RadioButton Tag="Descending" GroupName="Order"
-                                                     IsChecked="{Binding !IsAscending, Mode=OneTime}"
-                                                     Content="{locale:Locale OrderDescending}" Checked="Order_Checked" />
+                                        <RadioButton
+                                            Checked="Order_Checked"
+                                            Content="{locale:Locale OrderAscending}"
+                                            GroupName="Order"
+                                            IsChecked="{Binding IsAscending, Mode=OneTime}"
+                                            Tag="Ascending" />
+                                        <RadioButton
+                                            Checked="Order_Checked"
+                                            Content="{locale:Locale OrderDescending}"
+                                            GroupName="Order"
+                                            IsChecked="{Binding !IsAscending, Mode=OneTime}"
+                                            Tag="Descending" />
                                     </StackPanel>
                                 </Flyout>
                             </ui:DropDownButton.Flyout>
                         </ui:DropDownButton>
-                        <TextBlock DockPanel.Dock="Right" HorizontalAlignment="Right"
-                                   Text="{locale:Locale CommonSort}" VerticalAlignment="Center" Margin="10,0" />
+                        <TextBlock
+                            Margin="10,0"
+                            HorizontalAlignment="Right"
+                            VerticalAlignment="Center"
+                            DockPanel.Dock="Right"
+                            Text="{locale:Locale CommonSort}" />
                     </DockPanel>
                     <controls:GameListView
                         x:Name="GameList"
                         Grid.Row="1"
-                        HorizontalContentAlignment="Stretch"
                         HorizontalAlignment="Stretch"
-                        VerticalContentAlignment="Stretch"
                         VerticalAlignment="Stretch"
+                        HorizontalContentAlignment="Stretch"
+                        VerticalContentAlignment="Stretch"
                         IsVisible="{Binding IsList}" />
                     <controls:GameGridView
                         x:Name="GameGrid"
                         Grid.Row="1"
-                        HorizontalContentAlignment="Stretch"
                         HorizontalAlignment="Stretch"
-                        VerticalContentAlignment="Stretch"
                         VerticalAlignment="Stretch"
+                        HorizontalContentAlignment="Stretch"
+                        VerticalContentAlignment="Stretch"
                         IsVisible="{Binding IsGrid}" />
                 </Grid>
             </ContentControl>
-            <Grid Grid.Row="1"
-                  VerticalAlignment="Stretch"
-                  Background="{DynamicResource ThemeContentBackgroundColor}"
-                  IsVisible="{Binding ShowLoadProgress}"
-                  ZIndex="1000"
-                  HorizontalAlignment="Stretch">
+            <Grid
+                Grid.Row="1"
+                HorizontalAlignment="Stretch"
+                VerticalAlignment="Stretch"
+                Background="{DynamicResource ThemeContentBackgroundColor}"
+                IsVisible="{Binding ShowLoadProgress}"
+                ZIndex="1000">
                 <Grid
-                    HorizontalAlignment="Center"
-                    IsVisible="{Binding ShowLoadProgress}"
                     Margin="40"
-                    VerticalAlignment="Center">
+                    HorizontalAlignment="Center"
+                    VerticalAlignment="Center"
+                    IsVisible="{Binding ShowLoadProgress}">
                     <Grid.ColumnDefinitions>
                         <ColumnDefinition Width="Auto" />
                         <ColumnDefinition Width="*" />
                     </Grid.ColumnDefinitions>
                     <Border
-                        Grid.Column="0"
                         Grid.RowSpan="2"
-                        IsVisible="{Binding ShowLoadProgress}"
+                        Grid.Column="0"
                         Width="256"
                         Height="256"
                         Margin="10"
@@ -383,62 +472,64 @@
                         BorderBrush="Black"
                         BorderThickness="2"
                         BoxShadow="4 4 32 8 #40000000"
-                        CornerRadius="3">
+                        CornerRadius="3"
+                        IsVisible="{Binding ShowLoadProgress}">
                         <Image
-                            IsVisible="{Binding ShowLoadProgress}"
                             Width="256"
                             Height="256"
+                            IsVisible="{Binding ShowLoadProgress}"
                             Source="{Binding SelectedIcon, Converter={StaticResource ByteImage}}" />
                     </Border>
-                    <Grid Grid.Column="1"
-                          IsVisible="{Binding ShowLoadProgress}"
-                          HorizontalAlignment="Stretch"
-                          VerticalAlignment="Center">
+                    <Grid
+                        Grid.Column="1"
+                        HorizontalAlignment="Stretch"
+                        VerticalAlignment="Center"
+                        IsVisible="{Binding ShowLoadProgress}">
                         <Grid.RowDefinitions>
                             <RowDefinition Height="Auto" />
                             <RowDefinition Height="Auto" />
                             <RowDefinition Height="Auto" />
                         </Grid.RowDefinitions>
                         <TextBlock
-                            IsVisible="{Binding ShowLoadProgress}"
                             Grid.Row="0"
                             Margin="10"
                             FontSize="30"
                             FontWeight="Bold"
-                            TextWrapping="Wrap"
+                            IsVisible="{Binding ShowLoadProgress}"
                             Text="{Binding LoadHeading}"
-                            TextAlignment="Left" />
+                            TextAlignment="Left"
+                            TextWrapping="Wrap" />
                         <Border
-                            IsVisible="{Binding ShowLoadProgress}"
                             Grid.Row="1"
-                            CornerRadius="5"
-                            ClipToBounds="True"
-                            BorderBrush="{Binding ProgressBarBackgroundColor}"
+                            Margin="10"
                             Padding="0"
                             HorizontalAlignment="Stretch"
-                            Margin="10"
-                            BorderThickness="1">
+                            BorderBrush="{Binding ProgressBarBackgroundColor}"
+                            BorderThickness="1"
+                            ClipToBounds="True"
+                            CornerRadius="5"
+                            IsVisible="{Binding ShowLoadProgress}">
                             <ProgressBar
-                                IsVisible="{Binding ShowLoadProgress}"
                                 Height="10"
+                                MinWidth="500"
                                 Margin="0"
                                 Padding="0"
-                                CornerRadius="5"
-                                ClipToBounds="True"
-                                MinWidth="500"
                                 HorizontalAlignment="Stretch"
                                 Background="{Binding ProgressBarBackgroundColor}"
+                                ClipToBounds="True"
+                                CornerRadius="5"
                                 Foreground="{Binding ProgressBarForegroundColor}"
+                                IsIndeterminate="{Binding IsLoadingIndeterminate}"
+                                IsVisible="{Binding ShowLoadProgress}"
                                 Maximum="{Binding ProgressMaximum}"
                                 Minimum="0"
-                                IsIndeterminate="{Binding IsLoadingIndeterminate}"
                                 Value="{Binding ProgressValue}" />
                         </Border>
                         <TextBlock
-                            IsVisible="{Binding ShowLoadProgress}"
                             Grid.Row="2"
                             Margin="10"
                             FontSize="18"
+                            IsVisible="{Binding ShowLoadProgress}"
                             Text="{Binding CacheLoadStatus}"
                             TextAlignment="Left" />
                     </Grid>
@@ -450,8 +541,8 @@
                 Height="30"
                 Margin="0,0"
                 HorizontalAlignment="Stretch"
-                Background="{DynamicResource ThemeContentBackgroundColor}"
                 VerticalAlignment="Bottom"
+                Background="{DynamicResource ThemeContentBackgroundColor}"
                 DockPanel.Dock="Bottom"
                 IsVisible="{Binding ShowMenuAndStatusBar}">
                 <Grid.ColumnDefinitions>
@@ -460,8 +551,11 @@
                     <ColumnDefinition Width="*" />
                     <ColumnDefinition Width="Auto" />
                 </Grid.ColumnDefinitions>
-                <StackPanel Grid.Column="0" IsVisible="{Binding EnableNonGameRunningControls}"
-                            VerticalAlignment="Center" Margin="10,0">
+                <StackPanel
+                    Grid.Column="0"
+                    Margin="10,0"
+                    VerticalAlignment="Center"
+                    IsVisible="{Binding EnableNonGameRunningControls}">
                     <Grid Margin="0">
                         <Grid.ColumnDefinitions>
                             <ColumnDefinition Width="Auto" />
@@ -476,7 +570,10 @@
                             VerticalAlignment="Center"
                             Background="Transparent"
                             Command="{ReflectionBinding LoadApplications}">
-                            <ui:SymbolIcon Symbol="Refresh" Height="100" Width="50" />
+                            <ui:SymbolIcon
+                                Width="50"
+                                Height="100"
+                                Symbol="Refresh" />
                         </Button>
                         <TextBlock
                             Name="LoadStatus"
@@ -489,11 +586,11 @@
                             Name="LoadProgressBar"
                             Grid.Column="2"
                             Height="6"
-                            Maximum="{Binding StatusBarProgressMaximum}"
-                            Value="{Binding StatusBarProgressValue}"
                             VerticalAlignment="Center"
                             Foreground="{DynamicResource HighlightColor}"
-                            IsVisible="{Binding EnableNonGameRunningControls}" />
+                            IsVisible="{Binding EnableNonGameRunningControls}"
+                            Maximum="{Binding StatusBarProgressMaximum}"
+                            Value="{Binding StatusBarProgressValue}" />
                     </Grid>
                 </StackPanel>
                 <StackPanel
@@ -505,132 +602,137 @@
                     Orientation="Horizontal">
                     <TextBlock
                         Name="VsyncStatus"
+                        Margin="0,0,5,0"
                         HorizontalAlignment="Left"
                         VerticalAlignment="Center"
                         Foreground="{Binding VsyncColor}"
-                        PointerReleased="VsyncStatus_PointerReleased"
                         IsVisible="{Binding !ShowLoadProgress}"
-                        Margin="0,0,5,0"
+                        PointerReleased="VsyncStatus_PointerReleased"
                         Text="VSync"
                         TextAlignment="Left" />
                     <Border
                         Width="2"
+                        Height="12"
                         Margin="2,0"
-                        IsVisible="{Binding !ShowLoadProgress}"
+                        BorderBrush="Gray"
                         BorderThickness="1"
-                        Height="12"
-                        BorderBrush="Gray" />
+                        IsVisible="{Binding !ShowLoadProgress}" />
                     <TextBlock
-                        Margin="5,0,5,0"
                         Name="DockedStatus"
-                        IsVisible="{Binding !ShowLoadProgress}"
+                        Margin="5,0,5,0"
                         HorizontalAlignment="Left"
                         VerticalAlignment="Center"
+                        IsVisible="{Binding !ShowLoadProgress}"
                         PointerReleased="DockedStatus_PointerReleased"
                         Text="{Binding DockedStatusText}"
                         TextAlignment="Left" />
                     <Border
                         Width="2"
+                        Height="12"
                         Margin="2,0"
-                        IsVisible="{Binding !ShowLoadProgress}"
+                        BorderBrush="Gray"
                         BorderThickness="1"
-                        Height="12"
-                        BorderBrush="Gray" />
+                        IsVisible="{Binding !ShowLoadProgress}" />
                     <TextBlock
-                        Margin="5,0,5,0"
                         Name="AspectRatioStatus"
-                        IsVisible="{Binding !ShowLoadProgress}"
+                        Margin="5,0,5,0"
                         HorizontalAlignment="Left"
                         VerticalAlignment="Center"
+                        IsVisible="{Binding !ShowLoadProgress}"
                         PointerReleased="AspectRatioStatus_PointerReleased"
                         Text="{Binding AspectRatioStatusText}"
                         TextAlignment="Left" />
                     <Border
                         Width="2"
+                        Height="12"
                         Margin="2,0"
-                        IsVisible="{Binding !ShowLoadProgress}"
+                        BorderBrush="Gray"
                         BorderThickness="1"
-                        Height="12"
-                        BorderBrush="Gray" />
+                        IsVisible="{Binding !ShowLoadProgress}" />
                     <ui:ToggleSplitButton
+                        Name="VolumeStatus"
                         Margin="-2,0,-3,0"
                         Padding="5,0,0,5"
-                        Name="VolumeStatus"
                         HorizontalAlignment="Left"
                         VerticalAlignment="Center"
-                        IsVisible="{Binding !ShowLoadProgress}"
-                        BorderBrush="{DynamicResource ThemeContentBackgroundColor}"
                         Background="{DynamicResource ThemeContentBackgroundColor}"
+                        BorderBrush="{DynamicResource ThemeContentBackgroundColor}"
+                        Content="{Binding VolumeStatusText}"
                         IsChecked="{Binding VolumeMuted}"
-                        Content="{Binding VolumeStatusText}">
+                        IsVisible="{Binding !ShowLoadProgress}">
                         <ui:ToggleSplitButton.Flyout>
                             <Flyout Placement="Bottom" ShowMode="TransientWithDismissOnPointerMoveAway">
                                 <Grid Margin="0">
-                                    <Slider Value="{Binding Volume}"
-                                            ToolTip.Tip="{locale:Locale AudioVolumeTooltip}"
-                                            Minimum="0"
-                                            Maximum="1"
-                                            TickFrequency="0.05"
-                                            IsSnapToTickEnabled="True"
-                                            Padding="0"
-                                            Margin="0"
-                                            SmallChange="0.01"
-                                            LargeChange="0.05"
-                                            Width="150" />
+                                    <Slider
+                                        Width="150"
+                                        Margin="0"
+                                        Padding="0"
+                                        IsSnapToTickEnabled="True"
+                                        LargeChange="0.05"
+                                        Maximum="1"
+                                        Minimum="0"
+                                        SmallChange="0.01"
+                                        TickFrequency="0.05"
+                                        ToolTip.Tip="{locale:Locale AudioVolumeTooltip}"
+                                        Value="{Binding Volume}" />
                                 </Grid>
                             </Flyout>
                         </ui:ToggleSplitButton.Flyout>
                     </ui:ToggleSplitButton>
                     <Border
                         Width="2"
+                        Height="12"
                         Margin="2,0"
-                        IsVisible="{Binding !ShowLoadProgress}"
+                        BorderBrush="Gray"
                         BorderThickness="1"
-                        Height="12"
-                        BorderBrush="Gray" />
+                        IsVisible="{Binding !ShowLoadProgress}" />
                     <TextBlock
                         Margin="5,0,5,0"
-                        IsVisible="{Binding !ShowLoadProgress}"
                         HorizontalAlignment="Left"
                         VerticalAlignment="Center"
+                        IsVisible="{Binding !ShowLoadProgress}"
                         Text="{Binding GameStatusText}"
                         TextAlignment="Left" />
                     <Border
                         Width="2"
-                        IsVisible="{Binding !ShowLoadProgress}"
+                        Height="12"
                         Margin="2,0"
+                        BorderBrush="Gray"
                         BorderThickness="1"
-                        Height="12"
-                        BorderBrush="Gray" />
+                        IsVisible="{Binding !ShowLoadProgress}" />
                     <TextBlock
                         Margin="5,0,5,0"
-                        IsVisible="{Binding !ShowLoadProgress}"
                         HorizontalAlignment="Left"
                         VerticalAlignment="Center"
+                        IsVisible="{Binding !ShowLoadProgress}"
                         Text="{Binding FifoStatusText}"
                         TextAlignment="Left" />
                     <Border
                         Width="2"
+                        Height="12"
                         Margin="2,0"
-                        IsVisible="{Binding !ShowLoadProgress}"
+                        BorderBrush="Gray"
                         BorderThickness="1"
-                        Height="12"
-                        BorderBrush="Gray" />
+                        IsVisible="{Binding !ShowLoadProgress}" />
                     <TextBlock
                         Margin="5,0,5,0"
-                        IsVisible="{Binding !ShowLoadProgress}"
                         HorizontalAlignment="Left"
                         VerticalAlignment="Center"
+                        IsVisible="{Binding !ShowLoadProgress}"
                         Text="{Binding GpuStatusText}"
                         TextAlignment="Left" />
                 </StackPanel>
-                <StackPanel VerticalAlignment="Center" IsVisible="{Binding ShowFirmwareStatus}" Grid.Column="3"
-                            Orientation="Horizontal" Margin="10, 0">
+                <StackPanel
+                    Grid.Column="3"
+                    Margin="10,0"
+                    VerticalAlignment="Center"
+                    IsVisible="{Binding ShowFirmwareStatus}"
+                    Orientation="Horizontal">
                     <TextBlock
                         Name="FirmwareStatus"
+                        Margin="0"
                         HorizontalAlignment="Right"
                         VerticalAlignment="Center"
-                        Margin="0"
                         Text="{locale:Locale StatusBarSystemVersion}" />
                 </StackPanel>
             </Grid>

+ 54 - 25
Ryujinx.Ava/Ui/Windows/UpdaterWindow.axaml

@@ -1,18 +1,26 @@
-<window:StyleableWindow xmlns="https://github.com/avaloniaui"
-                        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-                        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
-                        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
-                        mc:Ignorable="d" d:DesignWidth="400" d:DesignHeight="350"
-                        xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale"
-                        x:Class="Ryujinx.Ava.Ui.Windows.UpdaterWindow"
-                        xmlns:window="clr-namespace:Ryujinx.Ava.Ui.Windows"
-                        CanResize="False"
-                        SizeToContent="Height"
-                        Width="500" MinHeight="500" Height="500"
-                        WindowStartupLocation="CenterOwner"
-                        MinWidth="500"
-                        Title="Ryujinx Updater">
-    <Grid Margin="20" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
+<window:StyleableWindow
+    x:Class="Ryujinx.Ava.Ui.Windows.UpdaterWindow"
+    xmlns="https://github.com/avaloniaui"
+    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+    xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale"
+    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+    xmlns:window="clr-namespace:Ryujinx.Ava.Ui.Windows"
+    Title="Ryujinx Updater"
+    Width="500"
+    Height="500"
+    MinWidth="500"
+    MinHeight="500"
+    d:DesignHeight="350"
+    d:DesignWidth="400"
+    CanResize="False"
+    SizeToContent="Height"
+    WindowStartupLocation="CenterOwner"
+    mc:Ignorable="d">
+    <Grid
+        Margin="20"
+        HorizontalAlignment="Stretch"
+        VerticalAlignment="Stretch">
         <Grid.RowDefinitions>
             <RowDefinition />
             <RowDefinition />
@@ -20,17 +28,38 @@
             <RowDefinition />
             <RowDefinition />
         </Grid.RowDefinitions>
-        <TextBlock Grid.Row="1" HorizontalAlignment="Stretch" TextAlignment="Center" Height="20" Name="MainText" />
-        <TextBlock Height="20" HorizontalAlignment="Stretch" TextAlignment="Center" Name="SecondaryText" Grid.Row="2" />
-        <ProgressBar IsVisible="False" HorizontalAlignment="Stretch" Name="ProgressBar" Maximum="100" Minimum="0"
-                     Margin="20" Grid.Row="3" />
-        <StackPanel IsVisible="False" Name="ButtonBox" Orientation="Horizontal" Spacing="20" Grid.Row="4"
-                    HorizontalAlignment="Right">
-            <Button Command="{Binding YesPressed}" MinWidth="50">
-                <TextBlock TextAlignment="Center" Text="{locale:Locale InputDialogYes}" />
+        <TextBlock
+            Name="MainText"
+            Grid.Row="1"
+            Height="20"
+            HorizontalAlignment="Stretch"
+            TextAlignment="Center" />
+        <TextBlock
+            Name="SecondaryText"
+            Grid.Row="2"
+            Height="20"
+            HorizontalAlignment="Stretch"
+            TextAlignment="Center" />
+        <ProgressBar
+            Name="ProgressBar"
+            Grid.Row="3"
+            Margin="20"
+            HorizontalAlignment="Stretch"
+            IsVisible="False"
+            Maximum="100"
+            Minimum="0" />
+        <StackPanel
+            Name="ButtonBox"
+            Grid.Row="4"
+            HorizontalAlignment="Right"
+            IsVisible="False"
+            Orientation="Horizontal"
+            Spacing="20">
+            <Button MinWidth="50" Command="{Binding YesPressed}">
+                <TextBlock Text="{locale:Locale InputDialogYes}" TextAlignment="Center" />
             </Button>
-            <Button Command="{Binding NoPressed}" MinWidth="50">
-                <TextBlock TextAlignment="Center" Text="{locale:Locale InputDialogNo}" />
+            <Button MinWidth="50" Command="{Binding NoPressed}">
+                <TextBlock Text="{locale:Locale InputDialogNo}" TextAlignment="Center" />
             </Button>
         </StackPanel>
     </Grid>