UIElement.Focus 方法

定义

尝试将焦点设定到此元素上。

public:
 virtual bool Focus();
public bool Focus ();
abstract member Focus : unit -> bool
override this.Focus : unit -> bool
Public Function Focus () As Boolean

返回

如果键盘焦点和逻辑焦点同时设定到此元素上,则为 true;如果只有逻辑焦点设定到此元素上或此方法调用未强制更改焦点,则为 false

实现

示例

以下示例将焦点设置为 TextBox 引用 Name的 ,然后调整光标在 中 TextBox的位置。

void OnClickMoveToStart(object sender, RoutedEventArgs e)
{
    tbPositionCursor.Focus();
    tbPositionCursor.Select(0, 0);
}
Private Sub OnClickMoveToStart(ByVal sender As Object, ByVal e As RoutedEventArgs)

    tbPositionCursor.Focus()
    tbPositionCursor.Select(0, 0)

End Sub

注解

若要可聚焦, FocusableIsEnabled 必须都是 true

即使元素可聚焦且有效, Focus 预览事件也可能在特定树中处理,并且可能不允许 (在复合控件) 中关注该元素。 在这种情况下,此方法返回 false

通常,焦点由两个不同的概念控制:键盘焦点和逻辑焦点。 这两个概念并不总是相同的。 有关详细信息,请参阅 焦点摘要输入概述

如果调用 Focus 返回 trueIsKeyboardFocused 则 和 IsKeyboardFocusWithin 也是 true

如果相关属性不是 true,则调用 Focus时,将按以下顺序引发一个或多个以下事件:PreviewLostKeyboardFocusPreviewGotKeyboardFocus (source 是新的焦点目标) 、IsKeyboardFocusedChangedIsKeyboardFocusWithinChangedLostKeyboardFocusGotKeyboardFocus (source 是新的焦点目标) 。

为了使此调用成功,应用程序中的其他一些元素之前需要具有焦点。

适用于