ContentElement.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
。
实现
示例
以下示例是一个页面加载事件处理程序,该处理程序在文档中查找指定的命名段落并为其设置焦点。 默认情况下,段落不可聚焦;此特定段落应用的样式 (未显示) 使用样式 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
注解
若要可聚焦, Focusable 且 IsEnabled 必须都是 true
。 请注意,默认情况下, ContentElement 几乎所有派生类都不是 Focusable 。
即使元素是可聚焦且已启用的,特定树中的事件处理、 ((例如,复合控件) )可能会通过不允许在那里聚焦来响应预览焦点事件,因此此方法将返回 false
。
焦点通常由两个不同的概念控制:键盘焦点和逻辑焦点,它们并不总是相同的。 此方法设置逻辑焦点。 没有编程方式专门设置键盘焦点:键盘焦点由用户输入决定。 有关详细信息,请参阅 焦点概述 和 输入概述。
如果调用 Focus 返回 true
, IsKeyboardFocused 则 和 IsKeyboardFocusWithin 也是 true
。
如果相关属性不是 true
,则调用 Focus时,将按以下顺序引发一个或多个以下事件:PreviewLostKeyboardFocus、 PreviewGotKeyboardFocus (source 是新的焦点目标) 、IsKeyboardFocusedChanged、IsKeyboardFocusWithinChanged、 LostKeyboardFocusGotKeyboardFocus (source 是新的焦点目标) 。