Example #1
0
        private Accelerator(string key, params AcceleratorModifiers[] modifiers)
        {
            var code  = key;
            var shift = false;

            if (key.Length == 1)
            {
                (code, shift) = KeyboardUtilities.KeyboardCodeFromCharCode(key[0]);
            }

            AcceleratorModifiers mods = (shift) ? AcceleratorModifiers.Shift : 0;

            foreach (var mod in modifiers)
            {
                mods |= mod;
            }
            var accel = new StringBuilder(string.Join("+", mods.ToString().Split(',').Select(t => t.Trim()).ToArray()));

            accel.Append($"+{code}");
            accelerator = accel.ToString();
        }