ContentElement.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

实现

示例

以下示例是一个页面加载事件处理程序,该处理程序在文档中查找指定的命名段落并为其设置焦点。 默认情况下,段落不可聚焦;此特定段落应用的样式 (未显示) 使用样式 Setter 使其可聚焦。

void FocusOnParagraph(object sender, RoutedEventArgs e)
{
  ContentElement ce = this.FindName("focusableP") as ContentElement;
  ce.Focus();
}
Private Sub FocusOnParagraph(ByVal sender As Object, ByVal e As RoutedEventArgs)
  Dim ce As ContentElement = TryCast(Me.FindName("focusableP"), ContentElement)
  ce.Focus()
End Sub

注解

若要可聚焦, FocusableIsEnabled 必须都是 true。 请注意,默认情况下, ContentElement 几乎所有派生类都不是 Focusable

即使元素是可聚焦且已启用的,特定树中的事件处理、 ((例如,复合控件) )可能会通过不允许在那里聚焦来响应预览焦点事件,因此此方法将返回 false

焦点通常由两个不同的概念控制:键盘焦点和逻辑焦点,它们并不总是相同的。 此方法设置逻辑焦点。 没有编程方式专门设置键盘焦点:键盘焦点由用户输入决定。 有关详细信息,请参阅 焦点概述输入概述

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

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

适用于

另请参阅