FrameworkElement.ContextMenuOpening Zdarzenie

Definicja

Występuje po otwarciu dowolnego menu kontekstowego elementu.

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 

Typ zdarzenia

Uwagi

Aby ręcznie otworzyć menu kontekstowe, programy obsługi zdarzeń powinny oznaczyć odpowiednie zdarzenie jako obsługiwane. W przeciwnym razie istniejąca wartość ContextMenu właściwości będzie używana do automatycznego otwierania menu kontekstowego. Oznaczanie obsłużonego zdarzenia skutecznie anuluje akcję domyślną i może być okazją do zresetowania wartości ContextMenu właściwości, a następnie otwarcia nowego ContextMenuelementu . Istnieje jednak problem z chronometrażem, o którym należy pamiętać. Aby całkowicie zastąpić menu kontekstowe ContextMenuOpening za pomocą programu obsługi, początkowe menu kontekstowe nie może mieć wartości null/pustej. Alternatywnie może być konieczne obsłużenie zdarzenia, a następnie ręczne otwarcie nowego menu kontekstowego. Aby uzyskać szczegółowe informacje, zobacz How to: Handle the ContextMenuOpening Event (Instrukcje: obsługa zdarzenia ContextMenuOpening).

Aby użyć tego zdarzenia jako elementu EventTrigger w stylu, należy odwołać się do bazowego dołączonego zdarzenia:

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

(To użycie jest wymagane, ponieważ implementacja zdarzeń, która FrameworkElement uwidacznia bazowe zdarzenie usługi, nie mapuje identyfikatora ContextMenuOpening , którego można użyć w wyzwalaczach).

ContextMenu sama jest klasą pochodną FrameworkElement , ale to zdarzenie nie zostanie podniesione z menu kontekstowego otwieranego jako źródło. Zdarzenie jest wywoływane z elementu , który jest właścicielem menu kontekstowego jako właściwości i jest wywoływany tylko wtedy, gdy użytkownik próbuje otworzyć menu kontekstowe w interfejsie użytkownika. Istnieje możliwość ContextMenu posiadania ContextMenu właściwości, ale należy unikać tego scenariusza (aby uzyskać szczegółowe informacje, zobacz FrameworkElement.ContextMenu).

Sama ContextMenu klasa ma również podobne zdarzenie (Opened), ale Opened nie zapewnia możliwości anulowania akcji użytkownika.

Informacje dotyczące kierowanego zdarzenia

Pole identyfikatora ContextMenuOpeningEvent
Strategia routingu Propagacji
Delegat ContextMenuEventHandler
  • Zastąp OnContextMenuOpening implementację obsługi klas dla tego zdarzenia w klasach pochodnych.

Dotyczy

Zobacz też