diff --git a/STranslate/View/SettingsWindow.xaml b/STranslate/View/SettingsWindow.xaml
index b74e7d1..0703ba2 100644
--- a/STranslate/View/SettingsWindow.xaml
+++ b/STranslate/View/SettingsWindow.xaml
@@ -120,127 +120,118 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
diff --git a/STranslate/View/SettingsWindow.xaml.cs b/STranslate/View/SettingsWindow.xaml.cs
index 0351a9d..383154c 100644
--- a/STranslate/View/SettingsWindow.xaml.cs
+++ b/STranslate/View/SettingsWindow.xaml.cs
@@ -29,5 +29,55 @@ namespace STranslate.View
DataContext = ViewModel.SettingsVM.Instance;
}
+
+ private byte _hotkeysModifiers;
+ private int _hotkeysKey;
+ private string _hotkeysText = string.Empty;
+
+ private void HotKeyTextBox_PreviewKeyDown(object sender, KeyEventArgs e)
+ {
+ e.Handled = true;
+ _hotkeysModifiers = 0;
+ _hotkeysKey = 0;
+ _hotkeysText = "";
+ Key key = (e.Key == Key.System ? e.SystemKey : e.Key);
+ if (key == Key.LeftShift || key == Key.RightShift
+ || key == Key.LeftCtrl || key == Key.RightCtrl
+ || key == Key.LeftAlt || key == Key.RightAlt
+ || key == Key.LWin || key == Key.RWin)
+ {
+ return;
+ }
+ StringBuilder shortcutText = new StringBuilder();
+ if ((Keyboard.Modifiers & ModifierKeys.Control) != 0)
+ {
+ _hotkeysModifiers += 2;
+ shortcutText.Append("Ctrl + ");
+ }
+ if ((Keyboard.Modifiers & ModifierKeys.Shift) != 0)
+ {
+ _hotkeysModifiers += 4;
+ shortcutText.Append("Shift + ");
+ }
+ if ((Keyboard.Modifiers & ModifierKeys.Alt) != 0)
+ {
+ _hotkeysModifiers += 1;
+ shortcutText.Append("Alt + ");
+ }
+ if (_hotkeysModifiers == 0 && (key < Key.F1 || key > Key.F12))
+ {
+ _hotkeysKey = 0;
+ shortcutText.Clear();
+ ((System.Windows.Controls.TextBox)sender).Text = _hotkeysText = "";
+ return;
+ }
+ _hotkeysKey = KeyInterop.VirtualKeyFromKey(key);
+ shortcutText.Append(key.ToString());
+ ((System.Windows.Controls.TextBox)sender).Text = _hotkeysText = shortcutText.ToString();
+ }
+ private void CrossWord_KeyUp(object sender, KeyEventArgs e)
+ {
+
+ }
}
}
diff --git a/STranslate/ViewModel/SettingsVM.cs b/STranslate/ViewModel/SettingsVM.cs
index 03894a9..cbecf51 100644
--- a/STranslate/ViewModel/SettingsVM.cs
+++ b/STranslate/ViewModel/SettingsVM.cs
@@ -91,16 +91,6 @@ namespace STranslate.ViewModel
MessageBox.Show($"未找到默认应用\n{ex.Message}");
}
});
-
- PreviewKeyDownCmd = new RelayCommand((_) => true, (o) =>
- {
- System.Diagnostics.Debug.Print($"Press key, control: {o}");
- });
-
- CrossWordKeyUpCmd = new RelayCommand((_) => true, (_) =>
- {
- System.Diagnostics.Debug.Print($"Key up");
- });
}
@@ -125,11 +115,6 @@ namespace STranslate.ViewModel
public ICommand StartupCmd { get; private set; }
public ICommand EscCmd { get; private set; }
public ICommand ResetHotKeysCmd { get; private set; }
- ///
- /// 按键按下事件
- ///
- public ICommand PreviewKeyDownCmd { get; private set; }
- public ICommand CrossWordKeyUpCmd { get; private set; }
private static SettingsVM _instance;