C# 如何确定班次+;alt+;控制+;按下菜单键win8 metro应用程序

C# 如何确定班次+;alt+;控制+;按下菜单键win8 metro应用程序,c#,microsoft-metro,C#,Microsoft Metro,我正在处理一个项目,我有一些文本框,其中一些仅为数字,但在xaml inputscope=“number”中,虚拟键盘显示的一些字符也类似于“[+%]”。。。。 我使用了key.down事件,但shift+4(+)传递了异常 我搜索并找到了control.modifierkey,但它不在metro应用程序中 我认为 if keyDown is shift boolean = true if keyUp boolean = false if boolean == true and digit

我正在处理一个项目,我有一些文本框,其中一些仅为数字,但在xaml inputscope=“number”中,虚拟键盘显示的一些字符也类似于“[+%]”。。。。 我使用了key.down事件,但shift+4(+)传递了异常 我搜索并找到了control.modifierkey,但它不在metro应用程序中

我认为

if keyDown is shift boolean = true 
if keyUp boolean = false 
if boolean == true and digit pressed do nothing 
但必须有一个简单的方法
有人能帮我吗?

将此代码添加到构造函数中,它将处理一个全局键和一个向下键

Window.Current.CoreWindow.KeyDown += CoreWindow_KeyDown;
        Window.Current.CoreWindow.KeyUp += CoreWindow_KeyUp;
以下是他们的活动

void CoreWindow_KeyUp(Windows.UI.Core.CoreWindow sender, Windows.UI.Core.KeyEventArgs args)
    {
        //this.Frame.Navigate(typeof(MainPage));
        var key = args.VirtualKey;
        string aa = args.ToString();
    }

    void CoreWindow_KeyDown(Windows.UI.Core.CoreWindow sender, Windows.UI.Core.KeyEventArgs args)
    {
        //this.Frame.Navigate(typeof(MainPage));
        var key = args.VirtualKey;
        string aa = args.ToString();
    }
您可以在此事件中处理自己的逻辑。大多数ky down事件都可以像dis。。。请尝试实现代码并查看

 private void pwd_KeyDown(object sender, KeyRoutedEventArgs e)
    { 
        if (e.Key == Windows.System.VirtualKey.Enter)
        {
            loginclick_Click(this, new RoutedEventArgs());
        }
    }
使用CoreWindow.GetKeyState()代替输入do shift、ctrl等。