Bagikan melalui


FocusManager.TryFocusAsync(DependencyObject, FocusState) Metode

Definisi

Secara asinkron mencoba untuk mengatur fokus pada elemen ketika aplikasi diinisialisasi.

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)

Parameter

element
DependencyObject

Objek tempat mengatur fokus.

value
FocusState

Salah satu nilai dari enumerasi FocusState yang menentukan bagaimana elemen dapat memperoleh fokus.

Mengembalikan

FocusMovementResult yang menunjukkan apakah fokus berhasil diatur.

Atribut

Persyaratan Windows

Rangkaian perangkat
Windows 10, version 1803 (diperkenalkan dalam 10.0.17134.0)
API contract
Windows.Foundation.UniversalApiContract (diperkenalkan dalam v6.0)

Contoh

Di sini, kami menunjukkan cara mengatur fokus pada objek WebView, dan, jika gagal, pulihkan fokus ke elemen asli.

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

Keterangan

Beberapa objek, seperti WebView, dapat berjalan dalam proses aplikasi atau dalam proses terpisah (lihat WebViewExecutionMode.SeparateProcess).

Saat objek berjalan dalam proses aplikasi, peristiwa fokus berikut terjadi seperti yang diharapkan untuk objek yang difokuskan sebelumnya dan objek yang baru difokuskan:

Namun, jika objek yang baru difokuskan berjalan dalam proses terpisah, beberapa perilaku peristiwa ini dapat berbeda.

  • GetFocusedElement tidak mengembalikan objek yang baru difokuskan hingga operasi TryFocusAsync selesai.
  • Kontrol kehilangan fokus menerima peristiwa LosingFocus-nya secara sinkron, tetapi tidak menerima LostFocus sampai operasi asinkron selesai.
  • Kontrol mendapatkan fokus akan menyempurnakan peristiwa GettingFocus secara sinkron, tetapi tidak menerima GotFocus sampai operasi asinkron selesai.

TryFocusAsync selesai secara sinkron saat dipanggil pada elemen yang berjalan dalam proses aplikasi.

Berlaku untuk

Lihat juga