Partilhar via


FocusManager.TryMoveFocusAsync Método

Definição

Sobrecargas

TryMoveFocusAsync(FocusNavigationDirection)

Tenta de forma assíncrona alterar o foco do elemento atual com foco para o próximo elemento focalizável na direção especificada.

TryMoveFocusAsync(FocusNavigationDirection, FindNextElementOptions)

Tenta de forma assíncrona alterar o foco do elemento atual com foco para o próximo elemento focalizável na direção especificada e sujeito às opções de navegação especificadas.

TryMoveFocusAsync(FocusNavigationDirection)

Tenta de forma assíncrona alterar o foco do elemento atual com foco para o próximo elemento focalizável na direção especificada.

public:
 static IAsyncOperation<FocusMovementResult ^> ^ TryMoveFocusAsync(FocusNavigationDirection focusNavigationDirection);
/// [Windows.Foundation.Metadata.Overload("TryMoveFocusAsync")]
/// [Windows.Foundation.Metadata.RemoteAsync]
 static IAsyncOperation<FocusMovementResult> TryMoveFocusAsync(FocusNavigationDirection const& focusNavigationDirection);
[Windows.Foundation.Metadata.Overload("TryMoveFocusAsync")]
[Windows.Foundation.Metadata.RemoteAsync]
public static IAsyncOperation<FocusMovementResult> TryMoveFocusAsync(FocusNavigationDirection focusNavigationDirection);
function tryMoveFocusAsync(focusNavigationDirection)
Public Shared Function TryMoveFocusAsync (focusNavigationDirection As FocusNavigationDirection) As IAsyncOperation(Of FocusMovementResult)

Parâmetros

focusNavigationDirection
FocusNavigationDirection

A direção em que o foco se move de elemento para elemento dentro da interface do usuário do aplicativo.

Retornos

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

Atributos

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

  • Os métodos FocusManager.TryMoveFocus retornam true (êxito), antes que a alteração de foco seja concluída.
  • GetFocusedElement não retorna o objeto recém-focado até que a operação assíncrona 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 foco de obtenção do controle recebe seu 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.

Você também pode usar o método FindNextElement(FocusNavigationDirection, FindNextElementOptions) ou o método FindNextElement(FocusNavigationDirection) para mover o foco programaticamente. Esses métodos recuperam o elemento (como dependencyObject) que receberá o foco com base na direção de navegação especificada (somente navegação direcional, não pode ser usado para emular a navegação de tabulação).

Observação

É recomendável usar o método FindNextElement em vez de FindNextFocusableElement porque FindNextFocusableElement recupera um UIElement, que retorna null se o próximo elemento focalizável não for um UIElement (como um objeto Hyperlink ).

Confira também

Aplica-se a

TryMoveFocusAsync(FocusNavigationDirection, FindNextElementOptions)

Tenta de forma assíncrona alterar o foco do elemento atual com foco para o próximo elemento focalizável na direção especificada e sujeito às opções de navegação especificadas.

public:
 static IAsyncOperation<FocusMovementResult ^> ^ TryMoveFocusAsync(FocusNavigationDirection focusNavigationDirection, FindNextElementOptions ^ focusNavigationOptions);
/// [Windows.Foundation.Metadata.Overload("TryMoveFocusWithOptionsAsync")]
/// [Windows.Foundation.Metadata.RemoteAsync]
 static IAsyncOperation<FocusMovementResult> TryMoveFocusAsync(FocusNavigationDirection const& focusNavigationDirection, FindNextElementOptions const& focusNavigationOptions);
[Windows.Foundation.Metadata.Overload("TryMoveFocusWithOptionsAsync")]
[Windows.Foundation.Metadata.RemoteAsync]
public static IAsyncOperation<FocusMovementResult> TryMoveFocusAsync(FocusNavigationDirection focusNavigationDirection, FindNextElementOptions focusNavigationOptions);
function tryMoveFocusAsync(focusNavigationDirection, focusNavigationOptions)
Public Shared Function TryMoveFocusAsync (focusNavigationDirection As FocusNavigationDirection, focusNavigationOptions As FindNextElementOptions) As IAsyncOperation(Of FocusMovementResult)

Parâmetros

focusNavigationDirection
FocusNavigationDirection

A direção em que o foco se move de elemento para elemento dentro da interface do usuário do aplicativo.

focusNavigationOptions
FindNextElementOptions

As opções de navegação usadas para identificar o candidato de foco.

Retornos

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

Atributos

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

  • Os métodos FocusManager.TryMoveFocus retornam true (êxito), antes que a alteração de foco seja concluída.
  • GetFocusedElement não retorna o objeto recém-focado até que a operação assíncrona 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 foco de obtenção do controle recebe seu 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.

Você também pode usar o método FindNextElement(FocusNavigationDirection, FindNextElementOptions) ou o método FindNextElement(FocusNavigationDirection) para mover o foco programaticamente. Esses métodos recuperam o elemento (como dependencyObject) que receberá o foco com base na direção de navegação especificada (somente navegação direcional, não pode ser usado para emular a navegação de tabulação).

Observação

É recomendável usar o método FindNextElement em vez de FindNextFocusableElement porque FindNextFocusableElement recupera um UIElement, que retorna null se o próximo elemento focalizável não for um UIElement (como um objeto Hyperlink ).

Confira também

Aplica-se a