FocusManager.TryMoveFocusAsync Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
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
- TryMoveFocus(Windows.UI.Xaml.Input.FocusNavigationDirection focusNavigationDirection) e FocusManager.TryMoveFocus(FocusNavigationDirection focusNavigationDirection, FindNextElementOptions focusNavigationOptions) retornam true (success), 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 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.
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 nulo se o próximo elemento focalizável não for um UIElement (como um objeto Hyperlink ).
Confira também
- TryMoveFocusAsync(FocusNavigationDirection, FindNextElementOptions)
- Interações por teclado
- Navegação por foco para teclado, gamepad, controle remoto e ferramentas de acessibilidade
- Navegação por foco programática
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
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
- TryMoveFocus(Windows.UI.Xaml.Input.FocusNavigationDirection focusNavigationDirection) e FocusManager.TryMoveFocus(FocusNavigationDirection focusNavigationDirection, FindNextElementOptions focusNavigationOptions) retornam true (success), 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 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.
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 nulo se o próximo elemento focalizável não for um UIElement (como um objeto Hyperlink ).
Confira também
- TryMoveFocusAsync(FocusNavigationDirection)
- Interações por teclado
- Navegação por foco para teclado, gamepad, controle remoto e ferramentas de acessibilidade
- Navegação por foco programática