Просмотр исходного кода

misc: chore: Use static instances of converters instead of using control resources

Evan Husted 1 год назад
Родитель
Сommit
191e158289

+ 1 - 6
src/Ryujinx/UI/Applet/UserSelectorDialog.axaml

@@ -13,11 +13,6 @@
     mc:Ignorable="d"
     Focusable="True"
     x:DataType="viewModels:UserSelectorDialogViewModel">
-    
-    <UserControl.Resources>
-        <helpers:BitmapArrayValueConverter x:Key="ByteImage" />
-    </UserControl.Resources>
-    
     <Design.DataContext>
         <viewModels:UserSelectorDialogViewModel />
     </Design.DataContext>
@@ -80,7 +75,7 @@
                                         Height="96"
                                         HorizontalAlignment="Stretch"
                                         VerticalAlignment="Top"
-                                        Source="{Binding Image, Converter={StaticResource ByteImage}}" />
+                                        Source="{Binding Image, Converter={x:Static helpers:BitmapArrayValueConverter.Instance}}" />
                                     <TextBlock
                                         HorizontalAlignment="Stretch"
                                         MaxWidth="90"

+ 1 - 4
src/Ryujinx/UI/Controls/ApplicationGridView.axaml

@@ -13,9 +13,6 @@
     mc:Ignorable="d"
     xmlns:viewModels="clr-namespace:Ryujinx.Ava.UI.ViewModels"
     x:DataType="viewModels:MainWindowViewModel">
-    <UserControl.Resources>
-        <helpers:BitmapArrayValueConverter x:Key="ByteImage" />
-    </UserControl.Resources>
     <Grid>
         <Grid.RowDefinitions>
             <RowDefinition Height="*" />
@@ -68,7 +65,7 @@
                                     Grid.Row="0"
                                     HorizontalAlignment="Stretch"
                                     VerticalAlignment="Top"
-                                    Source="{Binding Icon, Converter={StaticResource ByteImage}}" />
+                                    Source="{Binding Icon, Converter={x:Static helpers:BitmapArrayValueConverter.Instance}}" />
                                 <Panel
                                     Grid.Row="1"
                                     Height="50"

+ 1 - 4
src/Ryujinx/UI/Controls/ApplicationListView.axaml

@@ -12,9 +12,6 @@
     mc:Ignorable="d"
     xmlns:viewModels="clr-namespace:Ryujinx.Ava.UI.ViewModels"
     x:DataType="viewModels:MainWindowViewModel">
-    <UserControl.Resources>
-        <helpers:BitmapArrayValueConverter x:Key="ByteImage" />
-    </UserControl.Resources>
     <Grid>
         <Grid.RowDefinitions>
             <RowDefinition Height="*" />
@@ -62,7 +59,7 @@
                                     Classes.large="{Binding $parent[UserControl].((viewModels:MainWindowViewModel)DataContext).IsGridLarge}"
                                     Classes.normal="{Binding $parent[UserControl].((viewModels:MainWindowViewModel)DataContext).IsGridMedium}"
                                     Classes.small="{Binding $parent[UserControl].((viewModels:MainWindowViewModel)DataContext).IsGridSmall}"
-                                    Source="{Binding Icon, Converter={StaticResource ByteImage}}" />
+                                    Source="{Binding Icon, Converter={x:Static helpers:BitmapArrayValueConverter.Instance}}" />
                                 <Border
                                     Grid.Column="2"
                                     Margin="0,0,5,0"

+ 1 - 1
src/Ryujinx/UI/Helpers/Converters/BitmapArrayValueConverter.cs

@@ -9,7 +9,7 @@ namespace Ryujinx.Ava.UI.Helpers
 {
     internal class BitmapArrayValueConverter : IValueConverter
     {
-        public static BitmapArrayValueConverter Instance = new();
+        public static readonly BitmapArrayValueConverter Instance = new();
 
         public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
         {

+ 1 - 1
src/Ryujinx/UI/Helpers/Converters/DownloadableContentLabelConverter.cs

@@ -11,7 +11,7 @@ namespace Ryujinx.Ava.UI.Helpers
 {
     internal class DownloadableContentLabelConverter : IMultiValueConverter
     {
-        public static DownloadableContentLabelConverter Instance = new();
+        public static readonly DownloadableContentLabelConverter Instance = new();
 
         public object Convert(IList<object> values, Type targetType, object parameter, CultureInfo culture)
         {

+ 1 - 1
src/Ryujinx/UI/Helpers/Converters/KeyValueConverter.cs

@@ -10,7 +10,7 @@ namespace Ryujinx.Ava.UI.Helpers
 {
     internal class KeyValueConverter : IValueConverter
     {
-        public static KeyValueConverter Instance = new();
+        public static readonly KeyValueConverter Instance = new();
 
         private static readonly Dictionary<Key, LocaleKeys> _keysMap = new()
         {

+ 3 - 9
src/Ryujinx/UI/Helpers/Converters/MultiplayerInfoConverter.cs

@@ -1,6 +1,5 @@
 using Avalonia.Data.Converters;
 using Avalonia.Markup.Xaml;
-using Ryujinx.Ava.Common.Locale;
 using Ryujinx.Ava.Utilities.AppLibrary;
 using System;
 using System.Globalization;
@@ -19,15 +18,10 @@ namespace Ryujinx.Ava.UI.Helpers
                 {
                     return $"Hosted Games: {applicationData.GameCount}\nOnline Players: {applicationData.PlayerCount}";
                 }
-                else
-                {
-                    return "";
-                }
-            }
-            else
-            {
-                return "";
             }
+            
+            return "";
+            
         }
 
         public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)

+ 1 - 1
src/Ryujinx/UI/Helpers/Converters/TitleUpdateLabelConverter.cs

@@ -11,7 +11,7 @@ namespace Ryujinx.Ava.UI.Helpers
 {
     internal class TitleUpdateLabelConverter : IMultiValueConverter
     {
-        public static TitleUpdateLabelConverter Instance = new();
+        public static readonly TitleUpdateLabelConverter Instance = new();
 
         public object Convert(IList<object> values, Type targetType, object parameter, CultureInfo culture)
         {

+ 1 - 1
src/Ryujinx/UI/Helpers/Converters/XCITrimmerFileSpaceSavingsConverter.cs

@@ -12,7 +12,7 @@ namespace Ryujinx.Ava.UI.Helpers
     internal class XCITrimmerFileSpaceSavingsConverter : IValueConverter
     {
         private const long _bytesPerMB = 1024 * 1024;
-        public static XCITrimmerFileSpaceSavingsConverter Instance = new();
+        public static readonly XCITrimmerFileSpaceSavingsConverter Instance = new();
 
         public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
         {

+ 22 - 25
src/Ryujinx/UI/Views/Input/ControllerInputView.axaml

@@ -20,9 +20,6 @@
     <Design.DataContext>
         <viewModels:ControllerInputViewModel />
     </Design.DataContext>
-    <UserControl.Resources>
-        <helpers:KeyValueConverter x:Key="Key" />
-    </UserControl.Resources>
     <UserControl.Styles>
         <Style Selector="ToggleButton">
             <Setter Property="Width" Value="90" />
@@ -78,7 +75,7 @@
                                 TextAlignment="Center" />
                             <ToggleButton Name="ButtonZl">
                                 <TextBlock
-                                    Text="{Binding Config.ButtonZl, Converter={StaticResource Key}}"
+                                    Text="{Binding Config.ButtonZl, Converter={x:Static helpers:KeyValueConverter.Instance}}"
                                     TextAlignment="Center" />
                             </ToggleButton>
                         </StackPanel>
@@ -94,7 +91,7 @@
                                 TextAlignment="Center" />
                             <ToggleButton Name="ButtonL">
                                 <TextBlock
-                                    Text="{Binding Config.ButtonL, Converter={StaticResource Key}}"
+                                    Text="{Binding Config.ButtonL, Converter={x:Static helpers:KeyValueConverter.Instance}}"
                                     TextAlignment="Center" />
                             </ToggleButton>
                         </StackPanel>
@@ -110,7 +107,7 @@
                                 TextAlignment="Center" />
                             <ToggleButton Name="ButtonMinus">
                                 <TextBlock
-                                    Text="{Binding Config.ButtonMinus, Converter={StaticResource Key}}"
+                                    Text="{Binding Config.ButtonMinus, Converter={x:Static helpers:KeyValueConverter.Instance}}"
                                     TextAlignment="Center" />
                             </ToggleButton>
                         </StackPanel>
@@ -144,7 +141,7 @@
                                     TextAlignment="Center" />
                                 <ToggleButton Name="LeftStickButton">
                                     <TextBlock
-                                        Text="{Binding Config.LeftStickButton, Converter={StaticResource Key}}"
+                                        Text="{Binding Config.LeftStickButton, Converter={x:Static helpers:KeyValueConverter.Instance}}"
                                         TextAlignment="Center" />
                                 </ToggleButton>
                             </StackPanel>
@@ -161,7 +158,7 @@
                                     TextAlignment="Center" />
                                 <ToggleButton Name="LeftJoystick" Tag="stick">
                                     <TextBlock
-                                        Text="{Binding Config.LeftJoystick, Converter={StaticResource Key}}"
+                                        Text="{Binding Config.LeftJoystick, Converter={x:Static helpers:KeyValueConverter.Instance}}"
                                         TextAlignment="Center" />
                                 </ToggleButton>
                             </StackPanel>
@@ -254,7 +251,7 @@
                                     TextAlignment="Center" />
                                 <ToggleButton Name="DpadUp">
                                     <TextBlock
-                                        Text="{Binding Config.DpadUp, Converter={StaticResource Key}}"
+                                        Text="{Binding Config.DpadUp, Converter={x:Static helpers:KeyValueConverter.Instance}}"
                                         TextAlignment="Center" />
                                 </ToggleButton>
                             </StackPanel>
@@ -271,7 +268,7 @@
                                     TextAlignment="Center" />
                                 <ToggleButton Name="DpadDown">
                                     <TextBlock
-                                        Text="{Binding Config.DpadDown, Converter={StaticResource Key}}"
+                                        Text="{Binding Config.DpadDown, Converter={x:Static helpers:KeyValueConverter.Instance}}"
                                         TextAlignment="Center" />
                                 </ToggleButton>
                             </StackPanel>
@@ -288,7 +285,7 @@
                                     TextAlignment="Center" />
                                 <ToggleButton Name="DpadLeft">
                                     <TextBlock
-                                        Text="{Binding Config.DpadLeft, Converter={StaticResource Key}}"
+                                        Text="{Binding Config.DpadLeft, Converter={x:Static helpers:KeyValueConverter.Instance}}"
                                         TextAlignment="Center" />
                                 </ToggleButton>
                             </StackPanel>
@@ -305,7 +302,7 @@
                                     TextAlignment="Center" />
                                 <ToggleButton Name="DpadRight">
                                     <TextBlock
-                                        Text="{Binding Config.DpadRight, Converter={StaticResource Key}}"
+                                        Text="{Binding Config.DpadRight, Converter={x:Static helpers:KeyValueConverter.Instance}}"
                                         TextAlignment="Center" />
                                 </ToggleButton>
                             </StackPanel>
@@ -368,7 +365,7 @@
                                     TextAlignment="Center" />
                                 <ToggleButton Name="LeftButtonSr">
                                     <TextBlock
-                                        Text="{Binding Config.LeftButtonSr, Converter={StaticResource Key}}"
+                                        Text="{Binding Config.LeftButtonSr, Converter={x:Static helpers:KeyValueConverter.Instance}}"
                                         TextAlignment="Center" />
                                 </ToggleButton>
                             </StackPanel>
@@ -386,7 +383,7 @@
                                     TextAlignment="Center" />
                                 <ToggleButton Name="LeftButtonSl">
                                     <TextBlock
-                                        Text="{Binding Config.LeftButtonSl, Converter={StaticResource Key}}"
+                                        Text="{Binding Config.LeftButtonSl, Converter={x:Static helpers:KeyValueConverter.Instance}}"
                                         TextAlignment="Center" />
                                 </ToggleButton>
                             </StackPanel>
@@ -404,7 +401,7 @@
                                     TextAlignment="Center" />
                                 <ToggleButton Name="RightButtonSr">
                                     <TextBlock
-                                        Text="{Binding Config.RightButtonSr, Converter={StaticResource Key}}"
+                                        Text="{Binding Config.RightButtonSr, Converter={x:Static helpers:KeyValueConverter.Instance}}"
                                         TextAlignment="Center" />
                                 </ToggleButton>
                             </StackPanel>
@@ -422,7 +419,7 @@
                                     TextAlignment="Center" />
                                 <ToggleButton Name="RightButtonSl">
                                     <TextBlock
-                                        Text="{Binding Config.RightButtonSl, Converter={StaticResource Key}}"
+                                        Text="{Binding Config.RightButtonSl, Converter={x:Static helpers:KeyValueConverter.Instance}}"
                                         TextAlignment="Center" />
                                 </ToggleButton>
                             </StackPanel>
@@ -550,7 +547,7 @@
                                 TextAlignment="Center" />
                             <ToggleButton Name="ButtonZr">
                                 <TextBlock
-                                    Text="{Binding Config.ButtonZr, Converter={StaticResource Key}}"
+                                    Text="{Binding Config.ButtonZr, Converter={x:Static helpers:KeyValueConverter.Instance}}"
                                     TextAlignment="Center" />
                             </ToggleButton>
                         </StackPanel>
@@ -568,7 +565,7 @@
                                 TextAlignment="Center" />
                             <ToggleButton Name="ButtonR">
                                 <TextBlock
-                                    Text="{Binding Config.ButtonR, Converter={StaticResource Key}}"
+                                    Text="{Binding Config.ButtonR, Converter={x:Static helpers:KeyValueConverter.Instance}}"
                                     TextAlignment="Center" />
                             </ToggleButton>
                         </StackPanel>
@@ -586,7 +583,7 @@
                                 TextAlignment="Center" />
                             <ToggleButton Name="ButtonPlus">
                                 <TextBlock
-                                    Text="{Binding Config.ButtonPlus, Converter={StaticResource Key}}"
+                                    Text="{Binding Config.ButtonPlus, Converter={x:Static helpers:KeyValueConverter.Instance}}"
                                     TextAlignment="Center" />
                             </ToggleButton>
                         </StackPanel>
@@ -621,7 +618,7 @@
                                     TextAlignment="Center" />
                                 <ToggleButton Name="ButtonA">
                                     <TextBlock
-                                        Text="{Binding Config.ButtonA, Converter={StaticResource Key}}"
+                                        Text="{Binding Config.ButtonA, Converter={x:Static helpers:KeyValueConverter.Instance}}"
                                         TextAlignment="Center" />
                                 </ToggleButton>
                             </StackPanel>
@@ -638,7 +635,7 @@
                                     TextAlignment="Center" />
                                 <ToggleButton Name="ButtonB">
                                     <TextBlock
-                                        Text="{Binding Config.ButtonB, Converter={StaticResource Key}}"
+                                        Text="{Binding Config.ButtonB, Converter={x:Static helpers:KeyValueConverter.Instance}}"
                                         TextAlignment="Center" />
                                 </ToggleButton>
                             </StackPanel>
@@ -655,7 +652,7 @@
                                     TextAlignment="Center" />
                                 <ToggleButton Name="ButtonX">
                                     <TextBlock
-                                        Text="{Binding Config.ButtonX, Converter={StaticResource Key}}"
+                                        Text="{Binding Config.ButtonX, Converter={x:Static helpers:KeyValueConverter.Instance}}"
                                         TextAlignment="Center" />
                                 </ToggleButton>
                             </StackPanel>
@@ -672,7 +669,7 @@
                                     TextAlignment="Center" />
                                 <ToggleButton Name="ButtonY">
                                     <TextBlock
-                                        Text="{Binding Config.ButtonY, Converter={StaticResource Key}}"
+                                        Text="{Binding Config.ButtonY, Converter={x:Static helpers:KeyValueConverter.Instance}}"
                                         TextAlignment="Center" />
                                 </ToggleButton>
                             </StackPanel>
@@ -706,7 +703,7 @@
                                     TextAlignment="Center" />
                                 <ToggleButton Name="RightStickButton">
                                     <TextBlock
-                                        Text="{Binding Config.RightStickButton, Converter={StaticResource Key}}"
+                                        Text="{Binding Config.RightStickButton, Converter={x:Static helpers:KeyValueConverter.Instance}}"
                                         TextAlignment="Center" />
                                 </ToggleButton>
                             </StackPanel>
@@ -724,7 +721,7 @@
                                     TextAlignment="Center" />
                                 <ToggleButton Name="RightJoystick" Tag="stick">
                                     <TextBlock
-                                        Text="{Binding Config.RightJoystick, Converter={StaticResource Key}}"
+                                        Text="{Binding Config.RightJoystick, Converter={x:Static helpers:KeyValueConverter.Instance}}"
                                         TextAlignment="Center" />
                                 </ToggleButton>
                             </StackPanel>

+ 28 - 31
src/Ryujinx/UI/Views/Input/KeyboardInputView.axaml

@@ -18,9 +18,6 @@
     <Design.DataContext>
         <viewModels:KeyboardInputViewModel />
     </Design.DataContext>
-    <UserControl.Resources>
-        <helpers:KeyValueConverter x:Key="Key" />
-    </UserControl.Resources>
     <UserControl.Styles>
         <Style Selector="ToggleButton">
             <Setter Property="Width" Value="90" />
@@ -76,7 +73,7 @@
                                 TextAlignment="Center" />
                             <ToggleButton Name="ButtonZl">
                                 <TextBlock
-                                    Text="{Binding Config.ButtonZl, Converter={StaticResource Key}}"
+                                    Text="{Binding Config.ButtonZl, Converter={x:Static helpers:KeyValueConverter.Instance}}"
                                     TextAlignment="Center" />
                             </ToggleButton>
                         </StackPanel>
@@ -92,7 +89,7 @@
                                 TextAlignment="Center" />
                             <ToggleButton Name="ButtonL">
                                 <TextBlock
-                                    Text="{Binding Config.ButtonL, Converter={StaticResource Key}}"
+                                    Text="{Binding Config.ButtonL, Converter={x:Static helpers:KeyValueConverter.Instance}}"
                                     TextAlignment="Center" />
                             </ToggleButton>
                         </StackPanel>
@@ -108,7 +105,7 @@
                                 TextAlignment="Center" />
                             <ToggleButton Name="ButtonMinus">
                                 <TextBlock
-                                    Text="{Binding Config.ButtonMinus, Converter={StaticResource Key}}"
+                                    Text="{Binding Config.ButtonMinus, Converter={x:Static helpers:KeyValueConverter.Instance}}"
                                     TextAlignment="Center" />
                             </ToggleButton>
                         </StackPanel>
@@ -143,7 +140,7 @@
                                     TextAlignment="Center" />
                                 <ToggleButton Name="LeftStickButton">
                                     <TextBlock
-                                        Text="{Binding Config.LeftStickButton, Converter={StaticResource Key}}"
+                                        Text="{Binding Config.LeftStickButton, Converter={x:Static helpers:KeyValueConverter.Instance}}"
                                         TextAlignment="Center" />
                                 </ToggleButton>
                             </StackPanel>
@@ -160,7 +157,7 @@
                                     TextAlignment="Center" />
                                 <ToggleButton Name="LeftStickUp">
                                     <TextBlock
-                                        Text="{Binding Config.LeftStickUp, Converter={StaticResource Key}}"
+                                        Text="{Binding Config.LeftStickUp, Converter={x:Static helpers:KeyValueConverter.Instance}}"
                                         TextAlignment="Center" />
                                 </ToggleButton>
                             </StackPanel>
@@ -177,7 +174,7 @@
                                     TextAlignment="Center" />
                                 <ToggleButton Name="LeftStickDown">
                                     <TextBlock
-                                        Text="{Binding Config.LeftStickDown, Converter={StaticResource Key}}"
+                                        Text="{Binding Config.LeftStickDown, Converter={x:Static helpers:KeyValueConverter.Instance}}"
                                         TextAlignment="Center" />
                                 </ToggleButton>
                             </StackPanel>
@@ -194,7 +191,7 @@
                                     TextAlignment="Center" />
                                 <ToggleButton Name="LeftStickLeft">
                                     <TextBlock
-                                        Text="{Binding Config.LeftStickLeft, Converter={StaticResource Key}}"
+                                        Text="{Binding Config.LeftStickLeft, Converter={x:Static helpers:KeyValueConverter.Instance}}"
                                         TextAlignment="Center" />
                                 </ToggleButton>
                             </StackPanel>
@@ -211,7 +208,7 @@
                                     TextAlignment="Center" />
                                 <ToggleButton Name="LeftStickRight">
                                     <TextBlock
-                                        Text="{Binding Config.LeftStickRight, Converter={StaticResource Key}}"
+                                        Text="{Binding Config.LeftStickRight, Converter={x:Static helpers:KeyValueConverter.Instance}}"
                                         TextAlignment="Center" />
                                 </ToggleButton>
                             </StackPanel>
@@ -247,7 +244,7 @@
                                     TextAlignment="Center" />
                                 <ToggleButton Name="DpadUp">
                                     <TextBlock
-                                        Text="{Binding Config.DpadUp, Converter={StaticResource Key}}"
+                                        Text="{Binding Config.DpadUp, Converter={x:Static helpers:KeyValueConverter.Instance}}"
                                         TextAlignment="Center" />
                                 </ToggleButton>
                             </StackPanel>
@@ -264,7 +261,7 @@
                                     TextAlignment="Center" />
                                 <ToggleButton Name="DpadDown">
                                     <TextBlock
-                                        Text="{Binding Config.DpadDown, Converter={StaticResource Key}}"
+                                        Text="{Binding Config.DpadDown, Converter={x:Static helpers:KeyValueConverter.Instance}}"
                                         TextAlignment="Center" />
                                 </ToggleButton>
                             </StackPanel>
@@ -281,7 +278,7 @@
                                     TextAlignment="Center" />
                                 <ToggleButton Name="DpadLeft">
                                     <TextBlock
-                                        Text="{Binding Config.DpadLeft, Converter={StaticResource Key}}"
+                                        Text="{Binding Config.DpadLeft, Converter={x:Static helpers:KeyValueConverter.Instance}}"
                                         TextAlignment="Center" />
                                 </ToggleButton>
                             </StackPanel>
@@ -298,7 +295,7 @@
                                     TextAlignment="Center" />
                                 <ToggleButton Name="DpadRight">
                                     <TextBlock
-                                        Text="{Binding Config.DpadRight, Converter={StaticResource Key}}"
+                                        Text="{Binding Config.DpadRight, Converter={x:Static helpers:KeyValueConverter.Instance}}"
                                         TextAlignment="Center" />
                                 </ToggleButton>
                             </StackPanel>
@@ -341,7 +338,7 @@
                                 TextAlignment="Center" />
                             <ToggleButton Name="LeftButtonSr">
                                 <TextBlock
-                                    Text="{Binding Config.LeftButtonSr, Converter={StaticResource Key}}"
+                                    Text="{Binding Config.LeftButtonSr, Converter={x:Static helpers:KeyValueConverter.Instance}}"
                                     TextAlignment="Center" />
                             </ToggleButton>
                         </StackPanel>
@@ -359,7 +356,7 @@
                                 TextAlignment="Center" />
                             <ToggleButton Name="LeftButtonSl">
                                 <TextBlock
-                                    Text="{Binding Config.LeftButtonSl, Converter={StaticResource Key}}"
+                                    Text="{Binding Config.LeftButtonSl, Converter={x:Static helpers:KeyValueConverter.Instance}}"
                                     TextAlignment="Center" />
                             </ToggleButton>
                         </StackPanel>
@@ -377,7 +374,7 @@
                                 TextAlignment="Center" />
                             <ToggleButton Name="RightButtonSr">
                                 <TextBlock
-                                    Text="{Binding Config.RightButtonSr, Converter={StaticResource Key}}"
+                                    Text="{Binding Config.RightButtonSr, Converter={x:Static helpers:KeyValueConverter.Instance}}"
                                     TextAlignment="Center" />
                             </ToggleButton>
                         </StackPanel>
@@ -395,7 +392,7 @@
                                 TextAlignment="Center" />
                             <ToggleButton Name="RightButtonSl">
                                 <TextBlock
-                                    Text="{Binding Config.RightButtonSl, Converter={StaticResource Key}}"
+                                    Text="{Binding Config.RightButtonSl, Converter={x:Static helpers:KeyValueConverter.Instance}}"
                                     TextAlignment="Center" />
                             </ToggleButton>
                         </StackPanel>
@@ -437,7 +434,7 @@
                                 TextAlignment="Center" />
                             <ToggleButton Name="ButtonZr">
                                 <TextBlock
-                                    Text="{Binding Config.ButtonZr, Converter={StaticResource Key}}"
+                                    Text="{Binding Config.ButtonZr, Converter={x:Static helpers:KeyValueConverter.Instance}}"
                                     TextAlignment="Center" />
                             </ToggleButton>
                         </StackPanel>
@@ -455,7 +452,7 @@
                                 TextAlignment="Center" />
                             <ToggleButton Name="ButtonR">
                                 <TextBlock
-                                    Text="{Binding Config.ButtonR, Converter={StaticResource Key}}"
+                                    Text="{Binding Config.ButtonR, Converter={x:Static helpers:KeyValueConverter.Instance}}"
                                     TextAlignment="Center" />
                             </ToggleButton>
                         </StackPanel>
@@ -473,7 +470,7 @@
                                 TextAlignment="Center" />
                             <ToggleButton Name="ButtonPlus">
                                 <TextBlock
-                                    Text="{Binding Config.ButtonPlus, Converter={StaticResource Key}}"
+                                    Text="{Binding Config.ButtonPlus, Converter={x:Static helpers:KeyValueConverter.Instance}}"
                                     TextAlignment="Center" />
                             </ToggleButton>
                         </StackPanel>
@@ -508,7 +505,7 @@
                                     TextAlignment="Center" />
                                 <ToggleButton Name="ButtonA">
                                     <TextBlock
-                                        Text="{Binding Config.ButtonA, Converter={StaticResource Key}}"
+                                        Text="{Binding Config.ButtonA, Converter={x:Static helpers:KeyValueConverter.Instance}}"
                                         TextAlignment="Center" />
                                 </ToggleButton>
                             </StackPanel>
@@ -525,7 +522,7 @@
                                     TextAlignment="Center" />
                                 <ToggleButton Name="ButtonB">
                                     <TextBlock
-                                        Text="{Binding Config.ButtonB, Converter={StaticResource Key}}"
+                                        Text="{Binding Config.ButtonB, Converter={x:Static helpers:KeyValueConverter.Instance}}"
                                         TextAlignment="Center" />
                                 </ToggleButton>
                             </StackPanel>
@@ -542,7 +539,7 @@
                                     TextAlignment="Center" />
                                 <ToggleButton Name="ButtonX">
                                     <TextBlock
-                                        Text="{Binding Config.ButtonX, Converter={StaticResource Key}}"
+                                        Text="{Binding Config.ButtonX, Converter={x:Static helpers:KeyValueConverter.Instance}}"
                                         TextAlignment="Center" />
                                 </ToggleButton>
                             </StackPanel>
@@ -559,7 +556,7 @@
                                     TextAlignment="Center" />
                                 <ToggleButton Name="ButtonY">
                                     <TextBlock
-                                        Text="{Binding Config.ButtonY, Converter={StaticResource Key}}"
+                                        Text="{Binding Config.ButtonY, Converter={x:Static helpers:KeyValueConverter.Instance}}"
                                         TextAlignment="Center" />
                                 </ToggleButton>
                             </StackPanel>
@@ -594,7 +591,7 @@
                                     TextAlignment="Center" />
                                 <ToggleButton Name="RightStickButton">
                                     <TextBlock
-                                        Text="{Binding Config.RightStickButton, Converter={StaticResource Key}}"
+                                        Text="{Binding Config.RightStickButton, Converter={x:Static helpers:KeyValueConverter.Instance}}"
                                         TextAlignment="Center" />
                                 </ToggleButton>
                             </StackPanel>
@@ -611,7 +608,7 @@
                                     TextAlignment="Center" />
                                 <ToggleButton Name="RightStickUp">
                                     <TextBlock
-                                        Text="{Binding Config.RightStickUp, Converter={StaticResource Key}}"
+                                        Text="{Binding Config.RightStickUp, Converter={x:Static helpers:KeyValueConverter.Instance}}"
                                         TextAlignment="Center" />
                                 </ToggleButton>
                             </StackPanel>
@@ -628,7 +625,7 @@
                                     TextAlignment="Center" />
                                 <ToggleButton Name="RightStickDown">
                                     <TextBlock
-                                        Text="{Binding Config.RightStickDown, Converter={StaticResource Key}}"
+                                        Text="{Binding Config.RightStickDown, Converter={x:Static helpers:KeyValueConverter.Instance}}"
                                         TextAlignment="Center" />
                                 </ToggleButton>
                             </StackPanel>
@@ -645,7 +642,7 @@
                                     TextAlignment="Center" />
                                 <ToggleButton Name="RightStickLeft">
                                     <TextBlock
-                                        Text="{Binding Config.RightStickLeft, Converter={StaticResource Key}}"
+                                        Text="{Binding Config.RightStickLeft, Converter={x:Static helpers:KeyValueConverter.Instance}}"
                                         TextAlignment="Center" />
                                 </ToggleButton>
                             </StackPanel>
@@ -662,7 +659,7 @@
                                     TextAlignment="Center" />
                                 <ToggleButton Name="RightStickRight">
                                     <TextBlock
-                                        Text="{Binding Config.RightStickRight, Converter={StaticResource Key}}"
+                                        Text="{Binding Config.RightStickRight, Converter={x:Static helpers:KeyValueConverter.Instance}}"
                                         TextAlignment="Center" />
                                 </ToggleButton>
                             </StackPanel>

+ 11 - 14
src/Ryujinx/UI/Views/Settings/SettingsHotkeysView.axaml

@@ -14,9 +14,6 @@
     <Design.DataContext>
         <viewModels:SettingsViewModel />
     </Design.DataContext>
-    <UserControl.Resources>
-        <helpers:KeyValueConverter x:Key="Key" />
-    </UserControl.Resources>
     <UserControl.Styles>
         <Style Selector="StackPanel > StackPanel">
             <Setter Property="Margin" Value="10, 0, 0, 0" />
@@ -52,67 +49,67 @@
                 <StackPanel>
                     <TextBlock Text="{ext:Locale SettingsTabHotkeysToggleVSyncModeHotkey}" />
                     <ToggleButton Name="ToggleVSyncMode">
-                        <TextBlock Text="{Binding KeyboardHotkey.ToggleVSyncMode, Converter={StaticResource Key}}" />
+                        <TextBlock Text="{Binding KeyboardHotkey.ToggleVSyncMode, Converter={x:Static helpers:KeyValueConverter.Instance}}" />
                     </ToggleButton>
                 </StackPanel>
                 <StackPanel>
                     <TextBlock Text="{ext:Locale SettingsTabHotkeysScreenshotHotkey}" />
                     <ToggleButton Name="Screenshot">
-                        <TextBlock Text="{Binding KeyboardHotkey.Screenshot, Converter={StaticResource Key}}" />
+                        <TextBlock Text="{Binding KeyboardHotkey.Screenshot, Converter={x:Static helpers:KeyValueConverter.Instance}}" />
                     </ToggleButton>
                 </StackPanel>
                 <StackPanel>
                     <TextBlock Text="{ext:Locale SettingsTabHotkeysShowUiHotkey}" />
                     <ToggleButton Name="ShowUI">
-                        <TextBlock Text="{Binding KeyboardHotkey.ShowUI, Converter={StaticResource Key}}" />
+                        <TextBlock Text="{Binding KeyboardHotkey.ShowUI, Converter={x:Static helpers:KeyValueConverter.Instance}}" />
                     </ToggleButton>
                 </StackPanel>
                 <StackPanel>
                     <TextBlock Text="{ext:Locale SettingsTabHotkeysPauseHotkey}" />
                     <ToggleButton Name="Pause">
-                        <TextBlock Text="{Binding KeyboardHotkey.Pause, Converter={StaticResource Key}}" />
+                        <TextBlock Text="{Binding KeyboardHotkey.Pause, Converter={x:Static helpers:KeyValueConverter.Instance}}" />
                     </ToggleButton>
                 </StackPanel>
                 <StackPanel>
                     <TextBlock Text="{ext:Locale SettingsTabHotkeysToggleMuteHotkey}" />
                     <ToggleButton Name="ToggleMute">
-                        <TextBlock Text="{Binding KeyboardHotkey.ToggleMute, Converter={StaticResource Key}}" />
+                        <TextBlock Text="{Binding KeyboardHotkey.ToggleMute, Converter={x:Static helpers:KeyValueConverter.Instance}}" />
                     </ToggleButton>
                 </StackPanel>
                 <StackPanel>
                     <TextBlock Text="{ext:Locale SettingsTabHotkeysResScaleUpHotkey}" />
                     <ToggleButton Name="ResScaleUp">
-                        <TextBlock Text="{Binding KeyboardHotkey.ResScaleUp, Converter={StaticResource Key}}" />
+                        <TextBlock Text="{Binding KeyboardHotkey.ResScaleUp, Converter={x:Static helpers:KeyValueConverter.Instance}}" />
                     </ToggleButton>
                 </StackPanel>
                 <StackPanel>
                     <TextBlock Text="{ext:Locale SettingsTabHotkeysResScaleDownHotkey}" />
                     <ToggleButton Name="ResScaleDown">
-                        <TextBlock Text="{Binding KeyboardHotkey.ResScaleDown, Converter={StaticResource Key}}" />
+                        <TextBlock Text="{Binding KeyboardHotkey.ResScaleDown, Converter={x:Static helpers:KeyValueConverter.Instance}}" />
                     </ToggleButton>
                 </StackPanel>
                 <StackPanel>
                     <TextBlock Text="{ext:Locale SettingsTabHotkeysVolumeUpHotkey}" />
                     <ToggleButton Name="VolumeUp">
-                        <TextBlock Text="{Binding KeyboardHotkey.VolumeUp, Converter={StaticResource Key}}" />
+                        <TextBlock Text="{Binding KeyboardHotkey.VolumeUp, Converter={x:Static helpers:KeyValueConverter.Instance}}" />
                     </ToggleButton>
                 </StackPanel>
                 <StackPanel>
                     <TextBlock Text="{ext:Locale SettingsTabHotkeysVolumeDownHotkey}" />
                     <ToggleButton Name="VolumeDown">
-                        <TextBlock Text="{Binding KeyboardHotkey.VolumeDown, Converter={StaticResource Key}}" />
+                        <TextBlock Text="{Binding KeyboardHotkey.VolumeDown, Converter={x:Static helpers:KeyValueConverter.Instance}}" />
                     </ToggleButton>
                 </StackPanel>
                 <StackPanel Margin="10,0,0,0" Orientation="Horizontal">
                     <TextBlock Text="{ext:Locale SettingsTabHotkeysIncrementCustomVSyncIntervalHotkey}" />
                     <ToggleButton Name="CustomVSyncIntervalIncrement">
-                        <TextBlock Text="{Binding KeyboardHotkey.CustomVSyncIntervalIncrement, Converter={StaticResource Key}}" />
+                        <TextBlock Text="{Binding KeyboardHotkey.CustomVSyncIntervalIncrement, Converter={x:Static helpers:KeyValueConverter.Instance}}" />
                     </ToggleButton>
                 </StackPanel>
                 <StackPanel Margin="10,0,0,0" Orientation="Horizontal">
                     <TextBlock Text="{ext:Locale SettingsTabHotkeysDecrementCustomVSyncIntervalHotkey}" />
                     <ToggleButton Name="CustomVSyncIntervalDecrement">
-                        <TextBlock Text="{Binding KeyboardHotkey.CustomVSyncIntervalDecrement, Converter={StaticResource Key}}" />
+                        <TextBlock Text="{Binding KeyboardHotkey.CustomVSyncIntervalDecrement, Converter={x:Static helpers:KeyValueConverter.Instance}}" />
                     </ToggleButton>
                 </StackPanel>
             </StackPanel>

+ 1 - 4
src/Ryujinx/UI/Views/Settings/SettingsSystemView.axaml

@@ -10,9 +10,6 @@
     xmlns:helpers="clr-namespace:Ryujinx.Ava.UI.Helpers"
     mc:Ignorable="d"
     x:DataType="viewModels:SettingsViewModel">
-    <UserControl.Resources>
-        <helpers:TimeZoneConverter x:Key="TimeZone" />
-    </UserControl.Resources>
     <Design.DataContext>
         <viewModels:SettingsViewModel />
     </Design.DataContext>
@@ -162,7 +159,7 @@
                             Text="{Binding Path=TimeZone, Mode=OneWay}"
                             TextChanged="TimeZoneBox_OnTextChanged"
                             ToolTip.Tip="{ext:Locale TimezoneTooltip}" 
-                            ValueMemberBinding="{Binding Mode=OneWay, Converter={StaticResource TimeZone}}" />
+                            ValueMemberBinding="{Binding Mode=OneWay, Converter={x:Static helpers:TimeZoneConverter.Instance}}" />
                     </StackPanel>
                     <StackPanel
                         Margin="0,0,0,10"

+ 1 - 4
src/Ryujinx/UI/Views/User/UserEditorView.axaml

@@ -14,9 +14,6 @@
     mc:Ignorable="d"
     Focusable="True"
     x:DataType="models:TempProfile">
-    <UserControl.Resources>
-        <helpers:BitmapArrayValueConverter x:Key="ByteImage" />
-    </UserControl.Resources>
     <Grid Margin="0">
         <Grid.ColumnDefinitions>
             <ColumnDefinition Width="Auto" />
@@ -74,7 +71,7 @@
                         Margin="0"
                         HorizontalAlignment="Stretch"
                         VerticalAlignment="Top"
-                        Source="{Binding Image, Converter={StaticResource ByteImage}}" />
+                        Source="{Binding Image, Converter={x:Static helpers:BitmapArrayValueConverter.Instance}}" />
                 </Panel>
             </Border>
         </StackPanel>

+ 1 - 4
src/Ryujinx/UI/Views/User/UserFirmwareAvatarSelectorView.axaml

@@ -17,9 +17,6 @@
     <Design.DataContext>
         <viewModels:UserFirmwareAvatarSelectorViewModel />
     </Design.DataContext>
-	<UserControl.Resources>
-		<helpers:BitmapArrayValueConverter x:Key="ByteImage" />
-	</UserControl.Resources>
     <Grid
         Margin="0"
         HorizontalAlignment="Stretch"
@@ -62,7 +59,7 @@
                     <Panel
                         Background="{Binding BackgroundColor}"
                         Margin="5">
-                        <Image Source="{Binding Data, Converter={StaticResource ByteImage}}" />
+                        <Image Source="{Binding Data, Converter={x:Static helpers:BitmapArrayValueConverter.Instance}}" />
                     </Panel>
                 </DataTemplate>
             </ListBox.ItemTemplate>

+ 1 - 4
src/Ryujinx/UI/Views/User/UserSaveManagerView.axaml

@@ -19,9 +19,6 @@
     <Design.DataContext>
         <viewModels:UserSaveManagerViewModel />
     </Design.DataContext>
-    <UserControl.Resources>
-        <helpers:BitmapArrayValueConverter x:Key="ByteImage" />
-    </UserControl.Resources>
     <Grid>
         <Grid.RowDefinitions>
             <RowDefinition Height="Auto" />
@@ -147,7 +144,7 @@
                                     IsVisible="{Binding InGameList}"
                                     Width="42"
                                     Height="42"
-                                    Source="{Binding Icon, Converter={StaticResource ByteImage}}" />
+                                    Source="{Binding Icon, Converter={x:Static helpers:BitmapArrayValueConverter.Instance}}" />
                                 <TextBlock
                                     MaxLines="3"
                                     Width="320"

+ 1 - 4
src/Ryujinx/UI/Views/User/UserSelectorView.axaml

@@ -15,9 +15,6 @@
     mc:Ignorable="d"
     Focusable="True"
     x:DataType="viewModels:UserProfileViewModel">
-    <UserControl.Resources>
-        <helpers:BitmapArrayValueConverter x:Key="ByteImage" />
-    </UserControl.Resources>
     <Design.DataContext>
         <viewModels:UserProfileViewModel />
     </Design.DataContext>
@@ -74,7 +71,7 @@
                                         Height="96"
                                         HorizontalAlignment="Stretch"
                                         VerticalAlignment="Top"
-                                        Source="{Binding Image, Converter={StaticResource ByteImage}}" />
+                                        Source="{Binding Image, Converter={x:Static helpers:BitmapArrayValueConverter.Instance}}" />
                                     <TextBlock
                                         HorizontalAlignment="Stretch"
                                         MaxWidth="90"

+ 1 - 4
src/Ryujinx/UI/Windows/MainWindow.axaml

@@ -30,9 +30,6 @@
     <Design.DataContext>
         <viewModels:MainWindowViewModel />
     </Design.DataContext>
-    <Window.Resources>
-        <helpers:BitmapArrayValueConverter x:Key="ByteImage" />
-    </Window.Resources>
     <Window.KeyBindings>
         <KeyBinding Gesture="Alt+Return" Command="{Binding ToggleFullscreen}" />
         <KeyBinding Gesture="F11" Command="{Binding ToggleFullscreen}" />
@@ -121,7 +118,7 @@
                             Width="256"
                             Height="256"
                             IsVisible="{Binding ShowLoadProgress}"
-                            Source="{Binding SelectedIcon, Converter={StaticResource ByteImage}}" />
+                            Source="{Binding SelectedIcon, Converter={x:Static helpers:BitmapArrayValueConverter.Instance}}" />
                     </Border>
                     <Grid
                         Grid.Column="1"

+ 1 - 4
src/Ryujinx/UI/Windows/TitleUpdateWindow.axaml

@@ -14,9 +14,6 @@
     mc:Ignorable="d"
     x:DataType="viewModels:TitleUpdateViewModel"
     Focusable="True">
-    <UserControl.Resources>
-        <helpers:TitleUpdateLabelConverter x:Key="TitleUpdateLabel" />
-    </UserControl.Resources>
     <Grid RowDefinitions="Auto,*,Auto">
         <StackPanel
             Grid.Row="0"
@@ -57,7 +54,7 @@
                                 VerticalAlignment="Center"
                                 TextWrapping="Wrap">
                                 <TextBlock.Text>
-                                    <MultiBinding Converter="{StaticResource TitleUpdateLabel}">
+                                    <MultiBinding Converter="{x:Static helpers:TitleUpdateLabelConverter.Instance}">
                                         <Binding Path="DisplayVersion" />
                                         <Binding Path="IsBundled" />
                                     </MultiBinding>

+ 3 - 8
src/Ryujinx/UI/Windows/XCITrimmerWindow.axaml

@@ -13,11 +13,6 @@
     x:DataType="viewModels:XCITrimmerViewModel"
     Focusable="True"
     mc:Ignorable="d">    
-    <UserControl.Resources>
-        <helpers:XCITrimmerFileStatusConverter x:Key="StatusLabel" />
-        <helpers:XCITrimmerFileStatusDetailConverter x:Key="StatusDetailLabel" />
-        <helpers:XCITrimmerFileSpaceSavingsConverter x:Key="SpaceSavingsLabel" />
-    </UserControl.Resources>
     <Grid Margin="20 0 20 0">
         <Grid.RowDefinitions>
             <RowDefinition Height="Auto" />
@@ -186,7 +181,7 @@
                                         HorizontalAlignment="Left"
                                         VerticalAlignment="Center"
                                         MaxLines="1"
-                                        Text="{Binding ., Converter={StaticResource StatusLabel}}">
+                                        Text="{Binding ., Converter={x:Static helpers:XCITrimmerFileStatusConverter.Instance}}">
                                         <ToolTip.Tip>
                                             <StackPanel
                                                 IsVisible="{Binding IsFailed}">
@@ -194,7 +189,7 @@
                                                     Classes="h1" 
                                                     Text="{ext:Locale XCITrimmerTitleStatusFailed}" />
                                                 <TextBlock 
-                                                    Text="{Binding ., Converter={StaticResource StatusDetailLabel}}" 
+                                                    Text="{Binding ., Converter={x:Static helpers:XCITrimmerFileStatusDetailConverter.Instance}}" 
                                                     MaxLines="5"
                                                     MaxWidth="200"
                                                     MaxHeight="100"
@@ -209,7 +204,7 @@
                                         HorizontalAlignment="Left"
                                         VerticalAlignment="Center"
                                         MaxLines="1"
-                                        Text="{Binding ., Converter={StaticResource SpaceSavingsLabel}}">>
+                                        Text="{Binding ., Converter={x:Static helpers:XCITrimmerFileSpaceSavingsConverter.Instance}}">>
                                     </TextBlock>
                                 </Grid>
                             </Grid>