gpt4 book ai didi

c# - uwp 页面根本不触发 keydown 事件

转载 作者:行者123 更新时间:2023-12-03 15:45:49 24 4
gpt4 key购买 nike

在我的 uwp 应用程序中,我刚刚添加了一个新页面并导航到该页面,该页面上没有任何内容,只有默认网格。但我正在尝试接收根本没有被任何键触发的 keydown 事件。我还把 keydown 放到了 xaml 上的网格和后面的代码页面,但它仍然没有启动,我已经用断点保证了。

xaml

<Grid KeyDown="VideoPageKeyDown">

</Grid>

后面的代码
public sealed partial class VideoPlay : Page
{
public VideoPlay()
{
this.InitializeComponent();
KeyDown += VideoPageKeyDown;
}

private void VideoPageKeyDown(object sender, KeyRoutedEventArgs e)
{
if (e.Key == VirtualKey.GamepadDPadDown
|| e.Key == VirtualKey.GamepadLeftThumbstickDown)
{
//VideoMenuGrid.Visibility = Visibility.Visible;
//await VideoMenuGrid.Offset(200f, 0f, 1000, 0).StartAsync();
}
else if (e.Key == VirtualKey.GamepadDPadUp
|| e.Key == VirtualKey.GamepadLeftThumbstickUp)
{
//await VideoMenuGrid.Offset(0f, 0f, 1000, 0).StartAsync();
//VideoMenuGrid.Visibility = Visibility.Collapsed;
}
}
}

最佳答案

像网格这样没有获得焦点的控件不会直接接收事件。如果它上面有另一个控件,它可能会将事件传递给网格,因为它是一个路由事件。而是使用 coreWindow keyDown 事件。

public sealed partial class VideoPlay : Page
{
public VideoPlay()
{
this.InitializeComponent();
//Add this line
Window.Current.CoreWindow.KeyDown += CoreWindow_KeyDown;
}

void CoreWindow_KeyDown(Windows.UI.Core.CoreWindow sender, Windows.UI.Core.KeyEventArgs e)
{
//todo
}
}

关于c# - uwp 页面根本不触发 keydown 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48963052/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com