我一直在尝试将此工作作为游戏的一部分,以在使用 Canvas 时学习 UWP 环境。我已经阅读了很多关于让 KeyDown 工作的主题,我迷路了。
不用说我希望但它们似乎都不起作用,没有一个会导致事件处理程序被调用。
如有任何帮助,我们将不胜感激。
我的 XAML
<Grid Background="Black">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto" />
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Canvas Name="paintCanvas" Background="Black"
Grid.Column="1" HorizontalAlignment="Stretch" MaxWidth="642" MaxHeight="422"/>
</Grid>
我背后的简化代码:
namespace Game
{
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
paintCanvas.KeyDown += new KeyEventHandler(OnKeyDownHandler);
}
private void OnKeyDownHandler(object sender, KeyRoutedEventArgs e)
{
switch (e.Key)
{
case VirtualKey.Down:
// do something
break;
case VirtualKey.Up:
// do something
break;
case VirtualKey.Left:
// do something
break;
case VirtualKey.Right:
// do something
break;
}
}
}
}
最佳答案
您可以使用加速键来处理这个问题。如果您想要窃取某些代码,可以利用模板 10 中的 KeyHelper。
然后,您可以只使用模板 10;在 Visual Studio 中转到扩展管理器并搜索“模板 10”或通过 Nuget 添加模板 10 库。
祝你好运!
关于c# - 如何在 C# 中处理 UWP KeyDown 与 Canvas 的交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35161219/