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 事件。 例如,用户已选项卡浏览 ContentIsland 中的所有 Tabbable 元素,现在焦点应从岛移动到托管应用程序中的其他内容。 |
GetForIsland(ContentIsland) |
检索指定 ContentIsland的 InputFocusController 对象。 |
TrySetFocus() |
尝试将焦点设置为与 InputFocusController 关联的 ContentIsland。 |
事件
GotFocus |
当关联的 ContentIsland 接收焦点时发生。 |
LostFocus |
当焦点从关联的 ContentIsland移出时发生。 |
NavigateFocusRequested |
当 Content.ContentIsland 主机希望 ContentIsland 具有焦点时发生。 例如,用户已通过主机的元素进行选项卡式处理,现在需要按 Tab 键进入 ContentIsland。 宿主应用程序在与 SiteBridge关联的 InputFocusNavigationHost 上调用 InputFocusNavigationHost.NavigateFocus(Microsoft.UI.Input.FocusNavigationRequest)。 ContentIsland 的 InputFocusController,然后接收此 NavigateFocusRequested 事件,并可以决定它是否会获得焦点。 |