我有一个WPF窗口,其中包含一些控件(按钮,组框等),以及Viewport3D
中的一个大Border
。
视口(viewport)显示3D场景,我希望使用箭头键来移动其相机。问题:箭头键始终将焦点更改为另一个UIElement
。
如何通过箭头键禁用焦点更改,而是让它们更改相机位置?
最佳答案
没有一些代码进行实际测试总是很难回答,因为没有它,我们只是在猜测。无论哪种方式,我都无法评论您的特定情况,但是总的来说,如果我们想停止某个事件中发生的预定义操作,则通常会处理该事件并将e.Handled
属性设置为true
。
既然您已经想处理KeyDown
事件以检测箭头键的使用,则可以同时将e.Handled
属性设置为true
。但是,您应该改为处理PreviewKeyDown
事件,因为它发生在KeyDown
事件之前,因此更有可能产生所需的效果。尝试这样的事情:
private void TextBox_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Left || e.Key == Key.Right)
{
// Move your camera here
e.Handled = true;
}
}
关于c# - 如何通过箭头键禁用焦点更改,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24447602/