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 }