/ src / settings-ui / Settings.UI / Converters / ImageResizerFitToStringConverter.cs
ImageResizerFitToStringConverter.cs
 1  // Copyright (c) Microsoft Corporation
 2  // The Microsoft Corporation licenses this file to you under the MIT license.
 3  // See the LICENSE file in the project root for more information.
 4  
 5  using System;
 6  using System.Collections.Generic;
 7  using System.Globalization;
 8  using System.Windows;
 9  using Microsoft.PowerToys.Settings.UI.Library;
10  using Microsoft.UI.Xaml.Data;
11  
12  namespace Microsoft.PowerToys.Settings.UI.Converters;
13  
14  public sealed partial class ImageResizerFitToStringConverter : IValueConverter
15  {
16      // Maps each ResizeFit to its localized string.
17      private static readonly Dictionary<ResizeFit, string> FitToText = new()
18      {
19          { ResizeFit.Fill,    Helpers.ResourceLoaderInstance.ResourceLoader.GetString("ImageResizer_Fit_Fill_ThirdPersonSingular") },
20          { ResizeFit.Fit,     Helpers.ResourceLoaderInstance.ResourceLoader.GetString("ImageResizer_Fit_Fit_ThirdPersonSingular") },
21          { ResizeFit.Stretch, Helpers.ResourceLoaderInstance.ResourceLoader.GetString("ImageResizer_Fit_Stretch_ThirdPersonSingular") },
22      };
23  
24      public object Convert(object value, Type targetType, object parameter, string language)
25      {
26          if (value is ResizeFit fit && FitToText.TryGetValue(fit, out string fitText))
27          {
28              return parameter is string lowerParam && lowerParam == "ToLower" ?
29                  fitText.ToLower(CultureInfo.CurrentCulture) :
30                  fitText;
31          }
32  
33          return DependencyProperty.UnsetValue;
34      }
35  
36      public object ConvertBack(object value, Type targetType, object parameter, string language)
37      {
38          return value;
39      }
40  }