UIElement.Focus 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
尝试将焦点设定到此元素上。
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
注解
若要可聚焦, Focusable 和 IsEnabled 必须都是 true
。
即使元素可聚焦且有效, Focus
预览事件也可能在特定树中处理,并且可能不允许将焦点放在该元素 (例如在复合控件) 中。
在这种情况下,此方法返回 false
。
通常,焦点由两个不同的概念控制:键盘焦点和逻辑焦点。 这两个概念并不总是相同的。 有关详细信息,请参阅 焦点摘要 和 输入概述。
如果调用 Focus 返回 true
, IsKeyboardFocused 则 和 IsKeyboardFocusWithin 也是 true
。
如果相关属性尚未true
为 ,则调用 Focus时,将按以下顺序引发以下一个或多个以下事件:PreviewLostKeyboardFocus、 PreviewGotKeyboardFocus (source 是新的焦点目标) 、、 LostKeyboardFocusIsKeyboardFocusedChangedIsKeyboardFocusWithinChangedGotKeyboardFocus (source 是新的焦点目标) 。
要使此调用成功,应用程序中的其他一些元素需要之前具有焦点。 此外,当父容器元素调用此方法时,在某些情况下,子元素获得焦点,并且返回值为 false
。 若要测试元素是否具有焦点,请使用 IsKeyboardFocusWithin
和 IsKeyboardFocused
属性。