Sdílet prostřednictvím


FrameworkElement.ContextMenuOpening Událost

Definice

Nastane, když je otevřena jakákoli místní nabídka prvku.

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 

Event Type

Poznámky

Pokud chcete ručně otevřít místní nabídky, obslužné rutiny událostí by měly označit příslušnou událost jako zpracovanou. V opačném případě se stávající hodnota ContextMenu vlastnosti použije k automatickému otevření místní nabídky. Označení události zpracovávané v podstatě zruší výchozí akci a může být příležitostí obnovit hodnotu ContextMenu vlastnosti a pak otevřít novou ContextMenu. Měli byste si však uvědomit, že došlo k problému s načasováním. Aby bylo možné místní nabídku zcela nahradit obslužnou rutinou ContextMenuOpening , nesmí být počáteční místní nabídka null / prázdná. Případně můžete potřebovat zpracovat událost a pak ručně otevřít novou místní nabídku. Podrobnosti najdete v tématu Postupy: Zpracování události ContextMenuOpening.

Pokud chcete tuto událost použít jako EventTrigger styl, musíte odkazovat na podkladovou připojenou událost:

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

(Toto použití se vyžaduje, protože implementace FrameworkElement události, která zveřejňuje podkladovou událost služby, nemapuje ContextMenuOpening identifikátor tak, aby ho bylo možné použít v triggerech).

ContextMenu samotná je odvozená FrameworkElement třída, ale tato událost nebude vyvolána z místní nabídky, která je otevřena jako zdroj. Událost je vyvolána z elementu, který "vlastní" místní nabídku jako vlastnost a je vyvolána pouze v případě, že se uživatel pokusí otevřít místní nabídku v uživatelském rozhraní. Je možné ContextMenu , že sám o sobě má ContextMenu vlastnost, ale měli byste se vyhnout tomuto scénáři (podrobnosti viz FrameworkElement.ContextMenu).

Samotná ContextMenu třída má také podobnou událost (Opened), ale Opened neposkytuje příležitost zrušit akci uživatele.

Informace o směrované události

Položka Hodnota
Pole Identifikátor ContextMenuOpeningEvent
Strategie směrování Bublající
Delegát ContextMenuEventHandler
  • Přepsání OnContextMenuOpening pro implementaci zpracování tříd pro tuto událost v odvozených třídách.

Platí pro

Viz také