Compartir a través de


FocusManager.TryMoveFocusAsync Método

Definición

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

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

  • Los métodos FocusManager.TryMoveFocus 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 complete 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 un UIElement (como un objeto Hyperlink ).

Consulte tambié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

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

  • Los métodos FocusManager.TryMoveFocus 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 complete 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 un UIElement (como un objeto Hyperlink ).

Consulte también

Se aplica a