Share via


FrameworkElement.ContextMenuOpening Kejadian

Definisi

Terjadi ketika menu konteks apa pun pada elemen dibuka.

public:
 event System::Windows::Controls::ContextMenuEventHandler ^ ContextMenuOpening;
public event System.Windows.Controls.ContextMenuEventHandler ContextMenuOpening;
member this.ContextMenuOpening : System.Windows.Controls.ContextMenuEventHandler 
Public Custom Event ContextMenuOpening As ContextMenuEventHandler 

Jenis Acara

Keterangan

Untuk membuka menu konteks secara manual, penangan peristiwa harus menandai peristiwa yang relevan sebagai ditangani. Jika tidak, nilai properti yang ContextMenu ada akan digunakan untuk membuka menu konteks secara otomatis. Menandai peristiwa yang ditangani akan secara efektif membatalkan tindakan default, dan bisa menjadi kesempatan untuk mengatur ulang nilai ContextMenu properti dan kemudian membuka yang baru ContextMenu. Namun, ada masalah waktu yang harus Anda waspadai. Untuk mengganti menu konteks sepenuhnya melalui ContextMenuOpening handler, menu konteks awal tidak boleh null/kosong. Atau, Anda mungkin perlu menangani peristiwa lalu membuka menu konteks baru secara manual. Untuk detailnya, lihat Cara: Menangani Peristiwa ContextMenuOpening.

Untuk menggunakan kejadian ini sebagai EventTrigger dalam gaya, Anda harus mereferensikan peristiwa terlampir yang mendasar:

<EventTrigger RoutedEvent="ContextMenuService.ContextMenuOpening">
  <!-- storyboard here ... -->
</EventTrigger>

(Penggunaan ini diperlukan karena implementasi peristiwa pada FrameworkElement yang mengekspos peristiwa layanan yang mendasar tidak memetakan ContextMenuOpening pengidentifikasi sehingga Anda dapat menggunakannya dalam pemicu).

ContextMenu itu sendiri adalah FrameworkElement kelas turunan, tetapi peristiwa ini tidak akan dinaikkan dari menu konteks yang dibuka sebagai sumber. Peristiwa dimunculkan dari elemen yang "memiliki" menu konteks sebagai properti dan hanya dinaikkan ketika pengguna mencoba membuka menu konteks di UI. Dimungkinkan bagi dirinya sendiri untuk ContextMenu memiliki ContextMenu properti, tetapi Anda harus menghindari skenario ini (untuk detailnya, lihat FrameworkElement.ContextMenu).

Kelas itu ContextMenu sendiri juga memiliki peristiwa serupa (Opened) tetapi Opened tidak memberi Anda kesempatan untuk membatalkan tindakan pengguna.

Informasi Peristiwa Yang Dirutekan

Bidang pengidentifikasi ContextMenuOpeningEvent
Strategi perutean Menggelegak
Delegasikan ContextMenuEventHandler
  • Ambil alih OnContextMenuOpening untuk menerapkan penanganan kelas untuk peristiwa ini di kelas turunan.

Berlaku untuk

Lihat juga