InputFocusController 类

定义

表示一个对象,该对象支持处理和管理 ContentIsland上的焦点事件。

public ref class InputFocusController sealed : InputObject
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.Foundation.WindowsAppSDKContract, 65540)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class InputFocusController final : InputObject
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.Foundation.WindowsAppSDKContract), 65540)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class InputFocusController : InputObject
Public NotInheritable Class InputFocusController
Inherits InputObject
继承
Object Platform::Object IInspectable InputObject InputFocusController
属性

注解

ContentIsland 有一个基础 HWND,它可以与 Win32 API 交互并接收 Win32 消息(如各种输入消息)。

如果 ContentIsland的基础 HWND Win32 焦点,则其焦点

ContentIsland 具有焦点时,它将从系统接收键盘输入消息。 键盘输入事件可由 InputKeyboardSource 对象处理,该对象通过 InputKeyboardSource.GetForIsland(Microsoft.UI.Content.ContentIsland) 方法检索。

注意

有关 Win32 焦点和键盘输入的更多详细信息,请参阅 键盘输入概述键盘焦点和激活 部分。

释放时的行为

InputFocusController 与特定的 ContentIsland相关联。 如果释放 InputFocusController,它将丢失该关联,并且所有事件处理程序均未注册。

如果释放关联的 ContentIsland,则关联的 InputFocusController 也会释放。

有关详细信息,请参阅 Microsoft.UI.Input.InputObject

线程模型

InputFocusController 只能来自创建它的线程。 不同线程上的任何属性访问或函数调用都将返回RPC_E_WRONG_THREAD(或等效的投影错误类型)。

有关详细信息,请参阅 Microsoft.UI.Input.InputObject

属性

DispatcherQueue

获取 InputObject 的 DispatcherQueue

(继承自 InputObject)
HasFocus

获取关联的 ContentIsland 是否具有焦点。

方法

DepartFocus(FocusNavigationRequest)

Content.ContentIsland 主机引发 InputFocusNavigationHost.DepartFocusRequested 事件。

例如,用户已选项卡浏览 ContentIsland 中的所有 Tabbable 元素,现在焦点应从岛移动到托管应用程序中的其他内容。

GetForIsland(ContentIsland)

检索指定 ContentIslandInputFocusController 对象。

TrySetFocus()

尝试将焦点设置为与 InputFocusController 关联的 ContentIsland

事件

GotFocus

当关联的 ContentIsland 接收焦点时发生。

LostFocus

当焦点从关联的 ContentIsland移出时发生。

NavigateFocusRequested

Content.ContentIsland 主机希望 ContentIsland 具有焦点时发生。

例如,用户已通过主机的元素进行选项卡式处理,现在需要按 Tab 键进入 ContentIsland。 宿主应用程序在与 SiteBridge关联的 InputFocusNavigationHost 上调用 InputFocusNavigationHost.NavigateFocus(Microsoft.UI.Input.FocusNavigationRequest)。 ContentIsland 的 InputFocusController,然后接收此 NavigateFocusRequested 事件,并可以决定它是否会获得焦点。

适用于

另请参阅