コード例 #1
0
        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());
        }
コード例 #2
0
        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());
        }