InputFocusController 類別

定義

表示對象,支持處理和管理 contentIsland 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 訊息(例如各種輸入訊息)。

如果基礎 HWND 已 Win32 焦點,則 contentIsland焦點

當 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 內的所有可索引標籤專案,而現在焦點應該會從 Island 移至主控應用程式中的其他專案。

GetForIsland(ContentIsland)

擷取指定 ContentIslandInputFocusController 物件。

TrySetFocus()

嘗試將焦點設定為與 InputFocusController 相關聯的 ContentIsland

事件

GotFocus

發生於相關聯的 ContentIsland 收到焦點時。

LostFocus

發生於焦點從相關聯的 ContentIsland移動時。

NavigateFocusRequested

發生於 Content.ContentIsland 主機想要 ContentIsland 取得焦點時。

例如,使用者已透過主機的元素進行索引標籤,現在必須定位到 ContentIsland。 主控應用程式會在與 SiteBridge相關聯的 InputFocusNavigationHost 上呼叫 InputFocusNavigationHost.NavigateFocus(Microsoft.UI.Input.FocusNavigationReque st)。 ContentIsland 的 InputFocusController,然後會收到此 NavigateFocusRequested 事件,並可決定是否需要焦點。

適用於

另請參閱