Compartilhar via


FocusManager.TryFocusAsync(DependencyObject, FocusState) Método

Definição

Tenta de forma assíncrona definir o foco em um elemento quando o aplicativo é inicializado.

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)

Parâmetros

element
DependencyObject

O objeto no qual definir o foco.

value
FocusState

Um dos valores da enumeração FocusState que especificam como um elemento pode obter o foco.

Retornos

O FocusMovementResult que indica se o foco foi definido com êxito.

Atributos

Requisitos do Windows

Família de dispositivos
Windows 10, version 1803 (introduzida na 10.0.17134.0)
API contract
Windows.Foundation.UniversalApiContract (introduzida na v6.0)

Exemplos

Aqui, mostramos como definir o foco em um objeto WebView e, se isso falhar, restaurar o foco para o elemento original.

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); 
    } 
}

Comentários

Alguns objetos, como um WebView, podem ser executados no processo do aplicativo ou em um processo separado (consulte WebViewExecutionMode.SeparateProcess).

Quando um objeto é executado no processo do aplicativo, os seguintes eventos de foco ocorrem conforme o esperado para o objeto focado anteriormente e o objeto recém-focado:

No entanto, se o objeto recém-focado estiver em execução em um processo separado, alguns desses comportamentos de evento poderão ser diferentes.

  • GetFocusedElement não retorna o objeto recém-focado até que a operação TryFocusAsync seja concluída.
  • O controle que perde o foco recebe seu evento LosingFocus de forma síncrona, mas não recebe LostFocus até que a operação assíncrona seja concluída.
  • O controle que recebe o foco recebe o evento GettingFocus de forma síncrona, mas não recebe GotFocus até que a operação assíncrona seja concluída.

TryFocusAsync é concluído de forma síncrona quando chamado em um elemento em execução no processo do aplicativo.

Aplica-se a

Confira também