FocusManager.TryFocusAsync(DependencyObject, FocusState) Metodo

Definizione

Tenta in modo asincrono di impostare lo stato attivo su un elemento quando l'applicazione viene inizializzata.

public:
 static IAsyncOperation<FocusMovementResult ^> ^ TryFocusAsync(DependencyObject ^ element, FocusState value);
/// [Windows.Foundation.Metadata.RemoteAsync]
 static IAsyncOperation<FocusMovementResult> TryFocusAsync(DependencyObject const& element, FocusState const& value);
[Windows.Foundation.Metadata.RemoteAsync]
public static IAsyncOperation<FocusMovementResult> TryFocusAsync(DependencyObject element, FocusState value);
function tryFocusAsync(element, value)
Public Shared Function TryFocusAsync (element As DependencyObject, value As FocusState) As IAsyncOperation(Of FocusMovementResult)

Parametri

element
DependencyObject

Oggetto su cui impostare lo stato attivo.

value
FocusState

Uno dei valori dell'enumerazione FocusState che specifica come un elemento può ottenere lo stato attivo.

Restituisce

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

Attributi

Requisiti Windows

Famiglia di dispositivi
Windows 10, version 1803 (è stato introdotto in 10.0.17134.0)
API contract
Windows.Foundation.UniversalApiContract (è stato introdotto in v6.0)

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

Alcuni oggetti, ad esempio un controllo WebView, possono essere eseguiti nel processo dell'app o in un processo separato (vedere WebViewExecutionMode.SeparateProcess).

Quando un oggetto viene eseguito nel processo dell'app, gli eventi di stato attivo seguenti si verificano come previsto sia per l'oggetto attivo precedente che per l'oggetto appena attivo:

Tuttavia, se l'oggetto appena attivo è in esecuzione in un processo separato, alcuni di questi comportamenti di evento possono differire.

  • GetFocusedElement non restituisce l'oggetto appena attivo fino al completamento dell'operazione TryFocusAsync.
  • 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.

Si applica a

Vedi anche