Поделиться через


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, который может взаимодействовать с API Win32 и получать сообщения 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.

(Унаследовано от InputObject)
HasFocus

Возвращает, имеет ли связанный ContentIsland фокус.

Методы

DepartFocus(FocusNavigationRequest)

Вызывает событие InputFocusNavigationHost.DepartFocusRequested для узла Content.ContentIsland.

Например, пользователь на вкладке "Все элементы табуляции" в ContentIsland, а теперь фокус должен отойти от острова к другому в приложении размещения.

GetForIsland(ContentIsland)

Извлекает объект InputFocusController для указанного ContentIsland.

TrySetFocus()

Пытается задать фокус на ContentIsland, связанной с InputFocusController.

События

GotFocus

Происходит, когда связанный ContentIsland получает фокус.

LostFocus

Происходит при перемещении фокуса из связанной ContentIsland.

NavigateFocusRequested

Происходит, когда узел Content.ContentIsland хочет, чтобы ContentIsland был сосредоточен.

Например, пользователь на вкладке с элементами узла и теперь должен перейти на страницу ContentIsland. Приложение размещения вызывает InputFocusNavigationHost.NavigateFocus(Microsoft.UI.Input.FocusNavigationRequest) на InputFocusNavigationHost, связанной с SiteBridge. InputFocusController для ContentIsland, затем получает это событие NavigateFocusRequested и может решить, будет ли он принимать фокус.

Применяется к

См. также раздел