FocusManager.TryFocusAsync(DependencyObject, FocusState) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Асинхронно пытается установить фокус на элементе при инициализации приложения.
public:
static IAsyncOperation<FocusMovementResult ^> ^ TryFocusAsync(DependencyObject ^ element, FocusState value);
/// [Windows.Foundation.Metadata.RemoteAsync]
static IAsyncOperation<FocusMovementResult> TryFocusAsync(DependencyObject const& element, FocusState const& value);
[Windows.Foundation.Metadata.RemoteAsync]
public static IAsyncOperation<FocusMovementResult> TryFocusAsync(DependencyObject element, FocusState value);
function tryFocusAsync(element, value)
Public Shared Function TryFocusAsync (element As DependencyObject, value As FocusState) As IAsyncOperation(Of FocusMovementResult)
Параметры
- element
- DependencyObject
Объект, на который нужно установить фокус.
- value
- FocusState
Одно из значений перечисления FocusState , которое указывает, как элемент может получить фокус.
Возвращаемое значение
FocusMovementResult, указывающий, успешно ли установлен фокус.
- Атрибуты
Требования к Windows
Семейство устройств |
Windows 10, version 1803 (появилось в 10.0.17134.0)
|
API contract |
Windows.Foundation.UniversalApiContract (появилось в v6.0)
|
Примеры
Здесь мы покажем, как установить фокус на объекте WebView и, если это не удается, восстановить фокус на исходном элементе.
async void MoveFocus(WebView webView))
{
FocusMovementResult result;
result = await FocusManager.TryFocusAsync(webView, FocusState.Programmatic);
if (!result.Succeeded)
{
// Restore focus to original element.
this.Focus(FocusState.Programmatic);
}
}
Комментарии
Некоторые объекты, такие как WebView, могут выполняться либо в процессе приложения, либо в отдельном процессе (см. раздел WebViewExecutionMode.SeparateProcess).
Когда объект выполняется в процессе приложения, следующие события фокуса происходят должным образом как для ранее ориентированного, так и для нового объекта:
Однако если новый объект выполняется в отдельном процессе, некоторые из этих поведений могут отличаться.
- GetFocusedElement не возвращает новый объект , пока не завершится операция TryFocusAsync.
- Элемент управления, теряющий фокус, получает событие LostFocus синхронно, но не получает LostFocus до завершения асинхронной операции.
- Элемент управления, получая фокус, получает событие GettingFocus синхронно, но не получает GotFocus до завершения асинхронной операции.
TryFocusAsync выполняется синхронно при вызове элемента, выполняющегося в процессе приложения.