FocusManager.TryFocusAsync(DependencyObject, FocusState) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Tente de manière asynchrone de définir le focus sur un élément lorsque l’application est initialisée.
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)
Paramètres
- element
- DependencyObject
Objet sur lequel définir le focus.
- value
- FocusState
Une des valeurs de l’énumération FocusState qui spécifie comment un élément peut obtenir le focus.
Retours
FocusMovementResult qui indique si le focus a été correctement défini.
- Attributs
Configuration requise pour Windows
Famille d’appareils |
Windows 10, version 1803 (introduit dans 10.0.17134.0)
|
API contract |
Windows.Foundation.UniversalApiContract (introduit dans v6.0)
|
Exemples
Ici, nous montrons comment définir le focus sur un objet WebView et, en cas d’échec, restaurer le focus sur l’élément d’origine.
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);
}
}
Remarques
Certains objets, tels qu’un WebView, peuvent s’exécuter dans le processus d’application ou dans un processus distinct (voir WebViewExecutionMode.SeparateProcess).
Lorsqu’un objet s’exécute dans le processus d’application, les événements focus suivants se produisent comme prévu pour l’objet précédemment ciblé et l’objet nouvellement ciblé :
Toutefois, si l’objet nouvellement ciblé s’exécute dans un processus distinct, certains de ces comportements d’événement peuvent différer.
- GetFocusedElement ne retourne pas l’objet nouvellement ciblé tant que l’opération TryFocusAsync n’est pas terminée.
- Le contrôle qui perd le focus reçoit son événement LosingFocus de manière synchrone, mais ne reçoit pas LostFocus tant que l’opération asynchrone n’est pas terminée.
- Le contrôle qui obtient le focus réceie son événement GettingFocus de manière synchrone, mais ne reçoit pas GotFocus tant que l’opération asynchrone n’est pas terminée.
TryFocusAsync se termine de manière synchrone lorsqu’il est appelé sur un élément en cours d’exécution dans le processus d’application.