【发布时间】:2021-11-25 10:54:00
【问题描述】:
使用 .NET Framework 4.7.1
调用 Keyboard.GetKeyStates 后框架或窗体窗口大小缩小 有什么理由吗?还是它的错误? 我正在检查 ctrl 是否关闭或在其他窗口上切换。
if (((int)Keyboard.GetKeyStates(Key.LeftCtrl) == 1 || (int)Keyboard.GetKeyStates(Key.LeftCtrl) == 3)) { Console.WriteLine("pressed"); }
如图所示:
【问题讨论】:
-
你的if里面的代码就是这样吗?那么没有理由改变表单的大小
-
是的,只是调用函数时大小会发生变化,我不知道为什么!
-
System.Windows.Input 命名空间中的键盘类是否已打开,并且您尚未将项目设置为可识别 DPI?。如果是这样,您正在使用为 Winform 项目中的 WPF 应用程序设计的类。虽然这是允许的,但您正在触发一个副作用,即在访问该类时使您的应用程序被标记为 DPI 感知。使用 Microsoft.ACE.OLEDB 提供程序也会导致这种 DPI 感知变化(请参阅:When clicking "btnLogin", my forms decrease in size。)
-
stackoverflow.com/questions/48272782/… 是的,命名空间是 System.Windows.Input 我试过这个解决方案,取消注释 app.manifest 中的行,但不起作用。