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