当crtl+;按下S键(UWP应用程序)

当crtl+;按下S键(UWP应用程序),uwp,Uwp,每当用户按键盘上的Ctrl+S键时,我都想保存一些内容。我目前正在使用keydown事件处理程序,但一次只能访问一个键,不能访问组合 这是我的密码 private void txtWriteSomething_KeyDown(object sender, KeyRoutedEventArgs e) { if (**VirtualKeyModifiers.Control** && e.Key==VirtualKey.Control) {

每当用户按键盘上的Ctrl+S键时,我都想保存一些内容。
我目前正在使用keydown事件处理程序,但一次只能访问一个键,不能访问组合

这是我的密码

private void txtWriteSomething_KeyDown(object sender, KeyRoutedEventArgs e)
    {

        if (**VirtualKeyModifiers.Control** && e.Key==VirtualKey.Control)
        {
          //how to use VirtualKeyModifiers in this statement?
        }
    }

现在,为了获得组合(根据msdn),我们使用virtulakeymodifiers枚举。在这里,我不太清楚如何使用它。

这应该适合您

Window.Current.CoreWindow.KeyDown += (s, e) =>
{
    var ctrl = Window.Current.CoreWindow.GetKeyState(VirtualKey.Control);
    if (ctrl.HasFlag(CoreVirtualKeyStates.Down) && e.VirtualKey == VirtualKey.S)
    {
        MessageDialog _dialog = new MessageDialog("Ctrl+S");
        _dialog.ShowAsync();
    }
};

如果您看到,我订阅了
corefown
上的
Ctrl+S
。如果您只想订阅一个页面,请订阅该页面上的
KeyDown

这应该适合您

Window.Current.CoreWindow.KeyDown += (s, e) =>
{
    var ctrl = Window.Current.CoreWindow.GetKeyState(VirtualKey.Control);
    if (ctrl.HasFlag(CoreVirtualKeyStates.Down) && e.VirtualKey == VirtualKey.S)
    {
        MessageDialog _dialog = new MessageDialog("Ctrl+S");
        _dialog.ShowAsync();
    }
};

如果您看到,我订阅了
corefown
上的
Ctrl+S
。如果您只想订阅一个页面,请订阅该页面上的
KeyDown

您在哪里订阅KeyDown事件?比如代码中的哪个方法?在哪里订阅keydown事件?比如你的代码中的哪个方法?