ContentElement.Focus 方法

定义

尝试将焦点设置为此元素。

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

返回

如果键盘焦点可以设置为此元素,则为 ; 如果此方法调用未强制焦点,则为

实现

示例

下面的示例是一个页面加载的事件处理程序,它查找文档中的指定命名段落并将焦点设置为该段落。 段落默认不可聚焦;此特定段落应用了一个样式(未显示),该样式使用样式 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 (源是新的焦点目标)、IsKeyboardFocusedChangedIsKeyboardFocusWithinChangedLostKeyboardFocusGotKeyboardFocus (源是新的焦点目标)。

适用于

另请参阅