Condividi tramite


FocusManager.TryMoveFocusAsync Metodo

Definizione

Overload

TryMoveFocusAsync(FocusNavigationDirection)

Tenta in modo asincrono di modificare lo stato attivo dall'elemento corrente con lo stato attivo all'elemento attivabile successivo nella direzione specificata.

TryMoveFocusAsync(FocusNavigationDirection, FindNextElementOptions)

Tenta in modo asincrono di modificare lo stato attivo dall'elemento corrente con stato attivo all'elemento attivabile successivo nella direzione specificata e soggetto alle opzioni di spostamento specificate.

TryMoveFocusAsync(FocusNavigationDirection)

Tenta in modo asincrono di modificare lo stato attivo dall'elemento corrente con lo stato attivo all'elemento attivabile successivo nella direzione specificata.

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)

Parametri

focusNavigationDirection
FocusNavigationDirection

La direzione in cui lo stato attivo passa dall'elemento all'elemento all'interno dell'interfaccia utente dell'app.

Restituisce

FocusMovementResult che indica se lo stato attivo è stato impostato correttamente.

Attributi

Esempio

In questo esempio viene illustrato come impostare lo stato attivo su un oggetto WebView e, in caso di errore, ripristinare lo stato attivo sull'elemento originale.

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

Commenti

  • I metodi FocusManager.TryMoveFocus restituiscono true (esito positivo), prima del completamento della modifica dello stato attivo.
  • GetFocusedElement non restituisce l'oggetto appena attivo fino al completamento dell'operazione asincrona.
  • Il controllo che perde lo stato attivo riceve l'evento LosingFocus in modo sincrono, ma non riceve LostFocus fino al completamento dell'operazione asincrona.
  • Il controllo che riceve lo stato attivo riceve l'evento GettingFocus in modo sincrono, ma non riceve GotFocus fino al completamento dell'operazione asincrona.

TryFocusAsync viene completato in modo sincrono quando viene chiamato su un elemento in esecuzione nel processo dell'app.

È anche possibile utilizzare il metodo FindNextElement(FocusNavigationDirection, FindNextElementOptions) o il metodo FindNextElement(FocusNavigationDirection) per spostare lo stato attivo a livello di codice. Questi metodi recuperano l'elemento (come DependencyObject) che riceverà lo stato attivo in base alla direzione di navigazione specificata (solo navigazione direzionale, non può essere utilizzata per emulare lo spostamento tramite tabulazione).

Nota

È consigliabile utilizzare il metodo FindNextElement anziché FindNextFocusableElement perché FindNextFocusableElement recupera un UIElementoggetto , che restituisce null se l'elemento attivabile successivo non è un UIElement oggetto , ad esempio un oggetto Hyperlink .

Vedi anche

Si applica a

TryMoveFocusAsync(FocusNavigationDirection, FindNextElementOptions)

Tenta in modo asincrono di modificare lo stato attivo dall'elemento corrente con stato attivo all'elemento attivabile successivo nella direzione specificata e soggetto alle opzioni di spostamento specificate.

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)

Parametri

focusNavigationDirection
FocusNavigationDirection

La direzione in cui lo stato attivo passa dall'elemento all'elemento all'interno dell'interfaccia utente dell'app.

focusNavigationOptions
FindNextElementOptions

Opzioni di spostamento utilizzate per identificare il candidato dello stato attivo.

Restituisce

FocusMovementResult che indica se lo stato attivo è stato impostato correttamente.

Attributi

Esempio

In questo esempio viene illustrato come impostare lo stato attivo su un oggetto WebView e, in caso di errore, ripristinare lo stato attivo sull'elemento originale.

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

Commenti

  • I metodi FocusManager.TryMoveFocus restituiscono true (esito positivo), prima del completamento della modifica dello stato attivo.
  • GetFocusedElement non restituisce l'oggetto appena attivo fino al completamento dell'operazione asincrona.
  • Il controllo che perde lo stato attivo riceve l'evento LosingFocus in modo sincrono, ma non riceve LostFocus fino al completamento dell'operazione asincrona.
  • Il controllo che riceve lo stato attivo riceve l'evento GettingFocus in modo sincrono, ma non riceve GotFocus fino al completamento dell'operazione asincrona.

TryFocusAsync viene completato in modo sincrono quando viene chiamato su un elemento in esecuzione nel processo dell'app.

È anche possibile utilizzare il metodo FindNextElement(FocusNavigationDirection, FindNextElementOptions) o il metodo FindNextElement(FocusNavigationDirection) per spostare lo stato attivo a livello di codice. Questi metodi recuperano l'elemento (come DependencyObject) che riceverà lo stato attivo in base alla direzione di navigazione specificata (solo navigazione direzionale, non può essere utilizzata per emulare lo spostamento tramite tabulazione).

Nota

È consigliabile utilizzare il metodo FindNextElement anziché FindNextFocusableElement perché FindNextFocusableElement recupera un UIElementoggetto , che restituisce null se l'elemento attivabile successivo non è un UIElement oggetto , ad esempio un oggetto Hyperlink .

Vedi anche

Si applica a