InputFocusController 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示一个对象,该对象支持处理和管理 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
- 继承
- 属性
注解
ContentIsland 有一个基础 HWND ,它可以与 Win32 API 交互,并接收 Win32 消息 (,例如各种输入消息) 。
如果 ContentIsland 的基础 HWND 具有 Win32焦点,则其具有焦点。
当 ContentIsland 具有焦点时,它将接收来自系统的键盘输入消息。 键盘输入事件可由 InputKeyboardSource 对象处理,该对象通过 InputKeyboardSource.GetForIsland (Microsoft.UI.Content.ContentIsland) 方法检索。
释放时的行为
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 事件,并可以决定是否获得焦点。 |
适用于
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈