我有一个带有几个控件(按钮,组框等)的
WPF窗口和一个边框内的一个大Viewport3D.
视口显示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; } }