public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) { if (destinationType != typeof(string)) { throw new NotSupportedException(); } if (!(value is MultiKeyGesture gesture)) { throw new InvalidCastException(); } var sb = new StringBuilder(); if (!gesture.IsRealMultiKeyGesture) { if (gesture.Modifiers == ModifierKeys.None) { return(KeyboardLocalizationUtilities.GetKeyCultureName(gesture.Key, culture)); } return(KeyboardLocalizationUtilities.GetCultureModifiersName(gesture.Modifiers, culture) + "+" + KeyboardLocalizationUtilities.GetKeyCultureName(gesture.Key, culture)); } foreach (var i in gesture.GestureCollection) { sb.Append($"{i}, "); } sb.Remove(sb.Length - 2, 2); return(sb.ToString()); }
public override string ToString() { var builder = new StringBuilder(); var modifierName = KeyboardLocalizationUtilities.GetCultureModifiersName(Modifiers); if (Modifiers != ModifierKeys.None) { builder.Append($"{modifierName}+"); } builder.Append(KeyboardLocalizationUtilities.GetKeyCultureName(Key)); return(builder.ToString()); }