Di beberapa kontrol pengguna saya, saya mengubah kursor dengan menggunakan
this.Cursor = Cursors.Wait;
saat saya mengklik sesuatu.
Sekarang saya ingin melakukan hal yang sama pada halaman WPF dengan satu klik tombol. Saat saya mengarahkan kursor ke tombol saya, kursor berubah menjadi tangan, tetapi saat saya mengkliknya, kursor tidak berubah menjadi kursor tunggu. Saya ingin tahu apakah ini ada hubungannya dengan fakta bahwa ini adalah tombol, atau karena ini adalah halaman dan bukan kontrol pengguna? Ini sepertinya perilaku yang aneh.
Salah satu cara kami melakukan ini di aplikasi kami menggunakan IDisposable dan kemudian dengan
using(){}
blok untuk memastikan kursor disetel ulang saat selesai.lalu di kode Anda:
Penimpaan akan berakhir jika: akhir dari pernyataan penggunaan tercapai atau; jika pengecualian dilempar dan kontrol meninggalkan blok pernyataan sebelum akhir pernyataan.
Memperbarui
Untuk mencegah kursor berkedip, Anda dapat melakukan:
sumber
Mouse.OverrideCursor
untuknull
itu diset dan tidak ada menimpa lagi sistem kursor. JIKA saya memodifikasi kursor saat ini secara langsung (yaitu tidak menimpa) maka mungkin ada masalah.ConcurrentStack<Cursor>
, silakan edit jawaban di atas atau tambahkan jawaban Anda sendiri.Anda dapat menggunakan pemicu data (dengan model tampilan) pada tombol untuk mengaktifkan kursor tunggu.
Berikut kode dari model tampilan:
sumber
Jika aplikasi Anda menggunakan hal-hal asinkron dan Anda mengutak-atik kursor Mouse, Anda mungkin ingin melakukannya hanya di utas UI utama. Anda dapat menggunakan utas Dispatcher aplikasi untuk itu:
sumber
Yang berikut berhasil untuk saya:
sumber