FrameworkElement.MoveFocus(TraversalRequest) 方法

定义

将键盘焦点从此元素移开,并移动到提供遍历方向的另一个元素。

public:
 override bool MoveFocus(System::Windows::Input::TraversalRequest ^ request);
public override sealed bool MoveFocus(System.Windows.Input.TraversalRequest request);
override this.MoveFocus : System.Windows.Input.TraversalRequest -> bool
Public Overrides NotOverridable Function MoveFocus (request As TraversalRequest) As Boolean

参数

request
TraversalRequest

要移动焦点的方向,作为枚举的值。

返回

如果焦点成功移动,true则返回false;如果按指定方向移动的目标元素不存在或无法以键盘为焦点。

示例

以下示例实现处理多个可能的按钮输入的处理程序。 每个按钮表示可能的 FocusNavigationDirection。 处理程序通过指定MoveFocus相应的初始化类型FocusNavigationDirection参数来跟踪具有当前键盘焦点的元素,并调用TraversalRequest该元素。

// Creating a FocusNavigationDirection object and setting it to a
// local field that contains the direction selected.
FocusNavigationDirection focusDirection = _focusMoveValue;

// MoveFocus takes a TraveralReqest as its argument.
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);
}
' Creating a FocusNavigationDirection object and setting it to a
' local field that contains the direction selected.
Dim focusDirection As FocusNavigationDirection = _focusMoveValue

' MoveFocus takes a TraveralReqest as its argument.
Dim request As New TraversalRequest(focusDirection)

' Gets the element with keyboard focus.
Dim elementWithFocus As UIElement = TryCast(Keyboard.FocusedElement, UIElement)

' Change keyboard focus.
If elementWithFocus IsNot Nothing Then
    elementWithFocus.MoveFocus(request)
End If

注解

此实现替代 UIElement.MoveFocus 并密封方法。

适用于

另请参阅