FocusManager.TryFocusAsync(DependencyObject, FocusState) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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
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.