Bagaimana cara menonaktifkan tombol mouse di C# WPF?

Selama memuat file besar, saya ingin menonaktifkan tombol mouse agar pengguna tidak dapat mengklik elemen UI dan memicu peristiwa.

Edit Ketika saya memuat file berukuran besar di aplikasi WPF Caliburn Micro saya mengubah properti IsEnabled dari Listbox menjadi false, karena saya ingin menonaktifkan tombol selama proses ini. Selanjutnya ketika file dimuat saya mengubah properti IsEnabled dari Listbox menjadi true. Setelah itu setiap klik pada tombol nonaktif menimbulkan kejadian dan saya tidak menginginkannya. Saya tidak tahu cara menghapus acara ini, dan di mana acara tersebut disimpan, jadi menurut saya cara yang lebih mudah untuk mengatasi masalah ini adalah dengan menonaktifkan tombol mouse selama proses pemuatan file. Tapi itu juga tidak mudah... Terima kasih sebelumnya!


person El Matheo    schedule 27.01.2021    source sumber
comment
Jika ini hanya jendela individual, Anda dapat menonaktifkan jendela dari kode. Tidak yakin mengapa Anda ingin melakukan ini, selama memuat file besar Anda dapat menjalankannya sebagai tugas latar depan untuk membekukan perangkat lunak.   -  person Jay Mason    schedule 27.01.2021
comment
Anda mungkin ingin melengkapi pertanyaan Anda dengan lebih detail. Lihat juga: stackoverflow.com/help/how-to-ask   -  person Nat Riddle    schedule 27.01.2021
comment
Terima kasih, saya akan melakukan yang terbaik di posting berikutnya. Itu yang pertama bagiku.   -  person El Matheo    schedule 28.01.2021
comment
@Jay Mason Terima kasih, saya telah mencoba solusi Anda. Sebelum mulai memuat file saya telah menonaktifkan jendela. Ketika file dimuat saya harus mengaktifkan jendela lagi dan setelah itu setiap peristiwa yang muncul selama memuat file, dipicu dan membuat banyak kekacauan di UI. Jika Anda memiliki solusi lain, silakan.   -  person El Matheo    schedule 28.01.2021
comment
Saya telah menemukan solusi di posting ini stackoverflow.com /pertanyaan/9527404/   -  person El Matheo    schedule 28.01.2021


Jawaban (2)


Jika hanya ingin menonaktifkan tombol mouse, pengguna tetap dapat menggunakan keyboard. Jadi, Anda memerlukan teknik yang berbeda. Anda dapat menambahkan Gird tersembunyi dengan Opacity="0.5" ke jendela Anda. Bila Anda ingin mencegah pengguna menggunakan jendela, panggil saja grid yang terlihat.

person Ribaz    schedule 27.01.2021
comment
Ide bagus meskipun klien saya tidak menerimanya. - person El Matheo; 28.01.2021

Bagaimana dengan mengganti acara SelectionChanged di ListBox dan menyetelnya ke Handled = true saat memuat data besar?

person zoolog    schedule 27.01.2021
comment
Saya telah mencoba menerapkan solusi Anda, tetapi saya tidak bisa. Bisakah Anda mengirimkan contoh, cara mengganti acara di ViewModel dan cara menggunakannya di View? Terima kasih sebelumnya. - person El Matheo; 28.01.2021