我需要检测CapsLock Key是否已锁定(活动),但是当我尝试这样做时:
public void CapsLockStatus()
{
if ((CoreWindow.GetForCurrentThread().GetKeyState(VirtualKey.CapitalLock) &
CoreVirtualKeyStates.Locked) != 0)
{
//true -> Caps Lock is enable;
}
else
{
//false -> Caps Lock is disable;
}
}
在Windows 10桌面中,它运行正常,但在Windows 10移动版中却没有。
我尝试将"GetKeyState"
替换为"GetAsyncKeyState"
,但问题仍然存在。
问题是什么?有人帮帮我吗?
由于
答案 0 :(得分:3)
这个代码,在Windows 10桌面上,很好,工作得很好,但在寡妇10手机不是
实际上,Windows 10移动操作系统中的虚拟键盘中没有CapsLock Key,如果我们需要确保输入大写字母,只需按两次Shirt键。因此,您无法在此方案中检测到它。
接下来的问题是,为什么需要在UWP移动应用中检测CapsLock Key?唯一可能的情况是密码输入和提醒用户,但据我们所知,移动用户体验与PC上的用户体验不同,如果用户按两次Shift键,他/她将注意这个变化,因为虚拟键盘占用了大量的屏幕空间。
如果您确实需要这样做,请考虑使用CoreWindow.CharacterReceived事件来检测当前的KeyCode,以检查用户是否键入了大写字母。见my answer in this case