From d3617a5be74975934b43a30d1fe300288e53ce3a Mon Sep 17 00:00:00 2001
From: Bunny <1319900154@qq.com>
Date: Thu, 2 Jan 2025 19:01:38 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20WPF=E8=B7=AF=E7=94=B1=E4=BA=8B=E4=BB=B6?=
=?UTF-8?q?-6-=E8=8E=B7=E5=8F=96=E9=94=AE=E7=9B=98=E7=8A=B6=E6=80=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
WPF基础.sln | 6 ++++
WPF路由事件-6-获取键盘状态/App.xaml | 9 +++++
WPF路由事件-6-获取键盘状态/App.xaml.cs | 12 +++++++
WPF路由事件-6-获取键盘状态/AssemblyInfo.cs | 10 ++++++
WPF路由事件-6-获取键盘状态/MainWindow.xaml | 16 +++++++++
WPF路由事件-6-获取键盘状态/MainWindow.xaml.cs | 33 +++++++++++++++++++
.../WPF路由事件-6-获取键盘状态.csproj | 12 +++++++
7 files changed, 98 insertions(+)
create mode 100644 WPF路由事件-6-获取键盘状态/App.xaml
create mode 100644 WPF路由事件-6-获取键盘状态/App.xaml.cs
create mode 100644 WPF路由事件-6-获取键盘状态/AssemblyInfo.cs
create mode 100644 WPF路由事件-6-获取键盘状态/MainWindow.xaml
create mode 100644 WPF路由事件-6-获取键盘状态/MainWindow.xaml.cs
create mode 100644 WPF路由事件-6-获取键盘状态/WPF路由事件-6-获取键盘状态.csproj
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
+
+
+