[Windows8开发] 小知识点(VirtualKey)

有时候开发为了用户方便,设置键盘与输入按钮绑定,比如输入时,自定义键盘1234,当用户想直接敲击实体键盘或者虚拟键盘时,依然显示1234,这时候就需要用VirtualKey了。下面就是一个简单的例子。

首先在xaml中添加事件Page_KeyDown,也就是按下按键后触发的事件,然后转到C#添加如下代码:

private void Page_KeyDown(object sender, KeyRoutedEventArgs e)
{
            
     if (e.Key == VirtualKey.Back) //按下Backspace键
     {
          //执行代码
     }
}

中文MSDN中列举了许多VirtualKey的Code,网址: http://msdn.microsoft.com/zh-cn/library/windows/apps/xaml/windows.system.virtualkey.aspx

枚举到165。可是在我开发的时候发现,减号的Key 是189,加号是Shift和187(也就是按下Shift后再按等号,所以等号是187),这两个数都超过了165怎么办?不用急,直接写上

if(e.Key.ToString()=="189")就可以了!当然如果是组合键,也就是需要先按Shift的话,那么就要做判断了,设置一个变量来控制按下Shift后下一个按钮来判断用户到底想按哪个键(如果按下的是这类组合键后系统会重新执行Page_Down())。

if (e.Key == VirtualKey.Shift)
{
    jjcc = 1;
}
if (e.Key.ToString() == "187")
{
    if (jjcc == 1)
    { plus(null, null); jjcc = 0; } //按下加号(Shift+等号)
    else
    { equal(null, null); jjcc = 0; }//按下等号
}

检测大写键是否开启:

if (Window.Current.CoreWindow.GetKeyState(Windows.System.VirtualKey.NumberKeyLock) == Windows.UI.Core.CoreVirtualKeyStates.Locked)
{
//Code
}
原文地址:https://www.cnblogs.com/zetianchiang/p/2744727.html