diff --git a/WPF基础.sln b/WPF基础.sln index cc425b3..f37bbb4 100644 --- a/WPF基础.sln +++ b/WPF基础.sln @@ -62,6 +62,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WPF路由事件-4-生命周 EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WPF路由事件-5-处理按键事件", "WPF路由事件-5-处理按键事件\WPF路由事件-5-处理按键事件.csproj", "{DD14128A-A563-48B8-9ED2-201C0553B8D2}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WPF路由事件-6-获取键盘状态", "WPF路由事件-6-获取键盘状态\WPF路由事件-6-获取键盘状态.csproj", "{27972975-284A-436F-BA6F-3F4A2B2A4CBE}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -192,5 +194,9 @@ Global {DD14128A-A563-48B8-9ED2-201C0553B8D2}.Debug|Any CPU.Build.0 = Debug|Any CPU {DD14128A-A563-48B8-9ED2-201C0553B8D2}.Release|Any CPU.ActiveCfg = Release|Any CPU {DD14128A-A563-48B8-9ED2-201C0553B8D2}.Release|Any CPU.Build.0 = Release|Any CPU + {27972975-284A-436F-BA6F-3F4A2B2A4CBE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {27972975-284A-436F-BA6F-3F4A2B2A4CBE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {27972975-284A-436F-BA6F-3F4A2B2A4CBE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {27972975-284A-436F-BA6F-3F4A2B2A4CBE}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection EndGlobal diff --git a/WPF路由事件-6-获取键盘状态/App.xaml b/WPF路由事件-6-获取键盘状态/App.xaml new file mode 100644 index 0000000..97e4f61 --- /dev/null +++ b/WPF路由事件-6-获取键盘状态/App.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/WPF路由事件-6-获取键盘状态/App.xaml.cs b/WPF路由事件-6-获取键盘状态/App.xaml.cs new file mode 100644 index 0000000..6adb857 --- /dev/null +++ b/WPF路由事件-6-获取键盘状态/App.xaml.cs @@ -0,0 +1,12 @@ +using System.Configuration; +using System.Data; +using System.Windows; + +namespace WPF路由事件_6_获取键盘状态; + +/// +/// Interaction logic for App.xaml +/// +public partial class App : Application +{ +} \ No newline at end of file diff --git a/WPF路由事件-6-获取键盘状态/AssemblyInfo.cs b/WPF路由事件-6-获取键盘状态/AssemblyInfo.cs new file mode 100644 index 0000000..4a05c7d --- /dev/null +++ b/WPF路由事件-6-获取键盘状态/AssemblyInfo.cs @@ -0,0 +1,10 @@ +using System.Windows; + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] \ No newline at end of file diff --git a/WPF路由事件-6-获取键盘状态/MainWindow.xaml b/WPF路由事件-6-获取键盘状态/MainWindow.xaml new file mode 100644 index 0000000..5a58022 --- /dev/null +++ b/WPF路由事件-6-获取键盘状态/MainWindow.xaml @@ -0,0 +1,16 @@ + + + + + + + + + + \ No newline at end of file diff --git a/WPF路由事件-6-获取键盘状态/MainWindow.xaml.cs b/WPF路由事件-6-获取键盘状态/MainWindow.xaml.cs new file mode 100644 index 0000000..dd90090 --- /dev/null +++ b/WPF路由事件-6-获取键盘状态/MainWindow.xaml.cs @@ -0,0 +1,33 @@ +using System.Windows; +using System.Windows.Input; + +namespace WPF路由事件_6_获取键盘状态; + +/// +/// Interaction logic for MainWindow.xaml +/// +public partial class MainWindow : Window +{ + public MainWindow() + { + InitializeComponent(); + } + + private void InputTextBox_OnPreviewKeyDown(object sender, KeyEventArgs e) + { + var keyboardDeviceModifiers = e.KeyboardDevice.Modifiers & ModifierKeys.Control; + if (keyboardDeviceModifiers == ModifierKeys.Control) InputTextBox.Text = "好了"; + + // 判断是否按下了按键 + if (e.KeyboardDevice.IsKeyDown(Key.Z)) InputTextBox.Text = "按下了 Z 键"; + + // 判断是否按键释放 + if (e.KeyboardDevice.IsKeyUp(Key.LeftShift)) InputTextBox.Text = "左边的 LeftShift"; + + // 大写键是否开启 + if (e.KeyboardDevice.IsKeyToggled(Key.CapsLock)) InputTextBox.Text = "大写键是否开启或关闭"; + + var keyStates = e.KeyboardDevice.GetKeyStates(Key.A); + Console.WriteLine(keyStates); + } +} \ No newline at end of file diff --git a/WPF路由事件-6-获取键盘状态/WPF路由事件-6-获取键盘状态.csproj b/WPF路由事件-6-获取键盘状态/WPF路由事件-6-获取键盘状态.csproj new file mode 100644 index 0000000..ec27e24 --- /dev/null +++ b/WPF路由事件-6-获取键盘状态/WPF路由事件-6-获取键盘状态.csproj @@ -0,0 +1,12 @@ + + + + WinExe + net8.0-windows + WPF路由事件_6_获取键盘状态 + enable + enable + true + + +