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 事件。

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

GetForIsland(ContentIsland)

检索 InputFocusController 指定 ContentIsland 的 对象。

TrySetFocus()

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

事件

GotFocus

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

LostFocus

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

NavigateFocusRequested

Content.ContentIsland 主机希望 ContentIsland 获取焦点时发生。

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

适用于

另请参阅