我有一個簡單的應用程序(具有6個按鈕的柵格 - 2行的3 - 它用於測試)和正在處理左和右箭頭鍵如下WPF FocusNavigationDirection,MoveFocus和箭頭鍵
private void Window_PreviewKeyDown(object sender, KeyEventArgs e)
{
FocusNavigationDirection focusDirection = new System.Windows.Input.FocusNavigationDirection();
switch (e.Key)
{
case Key.Left:
focusDirection = System.Windows.Input.FocusNavigationDirection.Left;
break;
case Key.Right:
focusDirection = System.Windows.Input.FocusNavigationDirection.Right;
break;
default:
break;
}
TraversalRequest request = new TraversalRequest(focusDirection);
// Gets the element with keyboard focus.
UIElement elementWithFocus = Keyboard.FocusedElement as UIElement;
// Change keyboard focus.
if (elementWithFocus != null)
{
elementWithFocus.MoveFocus(request);
}
}
不幸的是,這並不像我預期的那樣行事,因爲焦點似乎總是朝着與FocusNavigationDirection指定的方向相反的方向移動。
爲什麼會這樣? MSDN Documentation對於如何定義「左側」有點含糊。
在它需要的情況下,我也通過6