FocusManager.TryMoveFocusAsync Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Sobrecargas
TryMoveFocusAsync(FocusNavigationDirection) |
Intenta cambiar de forma asincrónica el foco del elemento actual con el foco al siguiente elemento que se puede centrar en la dirección especificada. |
TryMoveFocusAsync(FocusNavigationDirection, FindNextElementOptions) |
Intenta cambiar de forma asincrónica el foco del elemento actual con el foco al siguiente elemento que se puede centrar en la dirección especificada y sujeto a las opciones de navegación especificadas. |
TryMoveFocusAsync(FocusNavigationDirection)
Intenta cambiar de forma asincrónica el foco del elemento actual con el foco al siguiente elemento que se puede centrar en la dirección 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
La dirección en la que el foco se mueve del elemento al elemento dentro de la interfaz de usuario de la aplicación.
Devoluciones
FocusMovementResult que indica si el foco se estableció correctamente.
- Atributos
Requisitos de Windows
Familia de dispositivos |
Windows 10, version 1803 (se introdujo en la versión 10.0.17134.0)
|
API contract |
Windows.Foundation.UniversalApiContract (se introdujo en la versión v6.0)
|
Ejemplos
Aquí se muestra cómo establecer el foco en un objeto WebView y, si se produce un error, se restaura el foco en el 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);
}
}
Comentarios
- TryMoveFocus(Windows.UI.Xaml.Input.FocusNavigationDirection focusNavigationDirection) y FocusManager.TryMoveFocus(FocusNavigationDirection focusNavigationDirection, FindNextElementOptions focusNavigationOptions) devuelven true (correcto), antes de que se complete el cambio de foco.
- GetFocusedElement no devuelve el objeto recién centrado hasta que se completa la operación asincrónica.
- El control que pierde el foco recibe su evento LosingFocus de forma sincrónica, pero no recibe LostFocus hasta que se completa la operación asincrónica.
- El control que obtiene el foco recibe su evento GettingFocus de forma sincrónica, pero no recibe GotFocus hasta que se completa la operación asincrónica.
TryFocusAsync se completa de forma sincrónica cuando se llama a en un elemento que se ejecuta en el proceso de la aplicación.
También puede usar el método FindNextElement(FocusNavigationDirection, FindNextElementOptions) o el método FindNextElement(FocusNavigationDirection) para mover el foco mediante programación. Estos métodos recuperan el elemento (como dependencyObject) que recibirá el foco en función de la dirección de navegación especificada (solo navegación direccional, no se puede usar para emular la navegación por tabulaciones).
Nota
Se recomienda usar el método FindNextElement en lugar de FindNextFocusableElement porque FindNextFocusableElement recupera un UIElement, que devuelve null si el siguiente elemento con foco no es uiElement (como un objeto Hyperlink ).
Consulte también
- TryMoveFocusAsync(FocusNavigationDirection, FindNextElementOptions)
- Interacciones de teclado
- Navegación de foco para herramientas de teclado, controlador para juegos, control remoto y accesibilidad
- Navegación con foco mediante programación
Se aplica a
TryMoveFocusAsync(FocusNavigationDirection, FindNextElementOptions)
Intenta cambiar de forma asincrónica el foco del elemento actual con el foco al siguiente elemento que se puede centrar en la dirección especificada y sujeto a las opciones de navegación 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
La dirección en la que el foco se mueve del elemento al elemento dentro de la interfaz de usuario de la aplicación.
- focusNavigationOptions
- FindNextElementOptions
Las opciones de navegación usadas para identificar el candidato de enfoque.
Devoluciones
FocusMovementResult que indica si el foco se estableció correctamente.
- Atributos
Requisitos de Windows
Familia de dispositivos |
Windows 10, version 1803 (se introdujo en la versión 10.0.17134.0)
|
API contract |
Windows.Foundation.UniversalApiContract (se introdujo en la versión v6.0)
|
Ejemplos
Aquí se muestra cómo establecer el foco en un objeto WebView y, si se produce un error, se restaura el foco en el 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);
}
}
Comentarios
- TryMoveFocus(Windows.UI.Xaml.Input.FocusNavigationDirection focusNavigationDirection) y FocusManager.TryMoveFocus(FocusNavigationDirection focusNavigationDirection, FindNextElementOptions focusNavigationOptions) devuelven true (correcto), antes de que se complete el cambio de foco.
- GetFocusedElement no devuelve el objeto recién centrado hasta que se completa la operación asincrónica.
- El control que pierde el foco recibe su evento LosingFocus de forma sincrónica, pero no recibe LostFocus hasta que se completa la operación asincrónica.
- El control que obtiene el foco recibe su evento GettingFocus de forma sincrónica, pero no recibe GotFocus hasta que se completa la operación asincrónica.
TryFocusAsync se completa de forma sincrónica cuando se llama a en un elemento que se ejecuta en el proceso de la aplicación.
También puede usar el método FindNextElement(FocusNavigationDirection, FindNextElementOptions) o el método FindNextElement(FocusNavigationDirection) para mover el foco mediante programación. Estos métodos recuperan el elemento (como dependencyObject) que recibirá el foco en función de la dirección de navegación especificada (solo navegación direccional, no se puede usar para emular la navegación por tabulaciones).
Nota
Se recomienda usar el método FindNextElement en lugar de FindNextFocusableElement porque FindNextFocusableElement recupera un UIElement, que devuelve null si el siguiente elemento con foco no es uiElement (como un objeto Hyperlink ).
Consulte también
- TryMoveFocusAsync(FocusNavigationDirection)
- Interacciones de teclado
- Navegación de foco para herramientas de teclado, controlador para juegos, control remoto y accesibilidad
- Navegación con foco mediante programación