private void btnAdd_OnClick(object sender, RoutedEventArgs e) { if (!update) { if (!ctlHotkey.CurrentHotkeyAvailable) { MessageBox.Show("Hotkey is unavailable, please select a new hotkey"); return; } if (CommonStorage.Instance.UserSetting.CustomPluginHotkeys == null) { CommonStorage.Instance.UserSetting.CustomPluginHotkeys = new List <CustomPluginHotkey>(); } var pluginHotkey = new CustomPluginHotkey() { Hotkey = ctlHotkey.CurrentHotkey.ToString(), ActionKeyword = tbAction.Text }; CommonStorage.Instance.UserSetting.CustomPluginHotkeys.Add(pluginHotkey); settingWidow.MainWindow.SetHotkey(ctlHotkey.CurrentHotkey.ToString(), delegate { settingWidow.MainWindow.ChangeQuery(pluginHotkey.ActionKeyword); settingWidow.MainWindow.ShowApp(); }); MessageBox.Show("Add hotkey successfully!"); } else { if (updateCustomHotkey.Hotkey != ctlHotkey.CurrentHotkey.ToString() && !ctlHotkey.CurrentHotkeyAvailable) { MessageBox.Show("Hotkey is unavailable, please select a new hotkey"); return; } var oldHotkey = updateCustomHotkey.Hotkey; updateCustomHotkey.ActionKeyword = tbAction.Text; updateCustomHotkey.Hotkey = ctlHotkey.CurrentHotkey.ToString(); //remove origin hotkey settingWidow.MainWindow.RemoveHotkey(oldHotkey); settingWidow.MainWindow.SetHotkey(updateCustomHotkey.Hotkey, delegate { settingWidow.MainWindow.ShowApp(); settingWidow.MainWindow.ChangeQuery(updateCustomHotkey.ActionKeyword); }); MessageBox.Show("Update successfully!"); } CommonStorage.Instance.Save(); settingWidow.ReloadCustomPluginHotkeyView(); Close(); }