添加项目文件。
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
using System.Windows;
|
||||
using System.Windows.Input;
|
||||
using TodoList.ViewModels;
|
||||
|
||||
namespace TodoList.Views
|
||||
{
|
||||
public partial class MainWindow : Window
|
||||
{
|
||||
public MainWindow(MainViewModel viewModel)
|
||||
{
|
||||
InitializeComponent();
|
||||
DataContext = viewModel;
|
||||
}
|
||||
|
||||
protected override void OnClosing(System.ComponentModel.CancelEventArgs e)
|
||||
{
|
||||
e.Cancel = true;
|
||||
this.Hide();
|
||||
// Verify if app shuts down? No, ShutdownMode is Explicit.
|
||||
}
|
||||
|
||||
private void ShortcutBox_PreviewKeyDown(object sender, System.Windows.Input.KeyEventArgs e)
|
||||
{
|
||||
e.Handled = true;
|
||||
|
||||
// Ignore modifier keys alone being the "main" key
|
||||
if (e.Key == Key.LeftCtrl || e.Key == Key.RightCtrl ||
|
||||
e.Key == Key.LeftAlt || e.Key == Key.RightAlt ||
|
||||
e.Key == Key.LeftShift || e.Key == Key.RightShift ||
|
||||
e.Key == Key.LWin || e.Key == Key.RWin)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var key = e.Key;
|
||||
if (key == Key.System) key = e.SystemKey; // Handle Alt+Key
|
||||
|
||||
// Build modifier string
|
||||
var modifiers = new System.Collections.Generic.List<string>();
|
||||
if ((Keyboard.Modifiers & ModifierKeys.Control) == ModifierKeys.Control) modifiers.Add("Control");
|
||||
if ((Keyboard.Modifiers & ModifierKeys.Alt) == ModifierKeys.Alt) modifiers.Add("Alt");
|
||||
if ((Keyboard.Modifiers & ModifierKeys.Shift) == ModifierKeys.Shift) modifiers.Add("Shift");
|
||||
if ((Keyboard.Modifiers & ModifierKeys.Windows) == ModifierKeys.Windows) modifiers.Add("Windows");
|
||||
|
||||
// Map key to string
|
||||
string keyStr = key.ToString();
|
||||
|
||||
// Simple mapping for letters/digits (A-Z, 0-9)
|
||||
if (keyStr.Length == 2 && keyStr.StartsWith("D") && char.IsDigit(keyStr[1]))
|
||||
{
|
||||
keyStr = keyStr.Substring(1);
|
||||
}
|
||||
|
||||
// Update ViewModel
|
||||
if (DataContext is MainViewModel vm)
|
||||
{
|
||||
vm.ShortcutModifiers = string.Join(",", modifiers);
|
||||
vm.ShortcutKey = keyStr;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user