private void TxtShortcutKeys_KeyDown(object sender, KeyEventArgs e) { if (!txtShortcutKeys.Text.Contains(e.Key.ToString())) { if (txtShortcutKeys.Text == txtShortcutkeyPlaceholder) { txtShortcutKeys.Text = ""; } if (string.IsNullOrEmpty(txtShortcutKeys.Text)) { txtShortcutKeys.Text = e.Key.ToString(); } else { txtShortcutKeys.Text += $" + {e.Key.ToString()}"; } if (!string.IsNullOrEmpty(txtShortcutKeys.Text)) { var stringKeys = txtShortcutKeys.Text.Split('+').Select(c => c.Trim()); var keys = Utiliies.ParseKeys(stringKeys).ToList(); var keyModifierList = keys.Where(c => Utiliies.ConvertToModifierKey(c) != ModifierKeys.None); var key = keys.Except(keyModifierList).LastOrDefault(); var currentKeySet = ""; foreach (var modifierKey in keyModifierList) { currentKeySet += modifierKey + " + "; } currentKeySet += $" {key}"; txtShortcutKeys.Text = currentKeySet; } } }
private void BtnSave_Click(object sender, RoutedEventArgs e) { //Save settings Properties.Settings.Default.LoadOnStartup = chckLoadStartup.IsChecked.Value; Properties.Settings.Default.ShortcutKeys = txtShortcutKeys.Text; Properties.Settings.Default.Save(); SetStartup(Properties.Settings.Default.LoadOnStartup); //Set New Modifiers var stringKeys = Properties.Settings.Default.ShortcutKeys.Split('+').Select(c => c.Trim()); var keys = Utiliies.ParseKeys(stringKeys).ToList(); var keyModifierList = keys.Where(c => Utiliies.ConvertToModifierKey(c) != ModifierKeys.None); var key = keys.Except(keyModifierList).FirstOrDefault(); var keyModifiers = ModifierKeys.None; foreach (var keyModifier in keyModifierList) { keyModifiers |= Utiliies.ConvertToModifierKey(keyModifier); } HotkeyController.Hotkey.SetModifierKeys(key, keyModifiers); this.DialogResult = true; this.Close(); }