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 выполняется синхронно при вызове элемента, выполняющегося в процессе приложения.

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

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