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
- Наследование
- Атрибуты
Комментарии
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 |
Возвращает диспетчера |
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 и может решить, будет ли он принимать фокус. |