Compartilhar via


FrameworkElement.ContextMenuOpening Evento

Definição

Ocorre quando qualquer menu de contexto no elemento é aberto.

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 

Tipo de evento

Comentários

Para abrir manualmente menus de contexto, os manipuladores dos eventos devem marcar o evento relevante como manipulado. Caso contrário, o valor existente da ContextMenu propriedade será usado para abrir automaticamente um menu de contexto. Marcar o evento tratado cancelará efetivamente a ação padrão e poderá ser uma oportunidade para redefinir o valor da ContextMenu propriedade e, em seguida, abrir o novo ContextMenu. No entanto, há um problema de tempo que você deve estar ciente. Para substituir completamente o menu de contexto por meio de um ContextMenuOpening manipulador, o menu de contexto inicial não deve ser nulo/vazio. Como alternativa, talvez seja necessário manipular o evento e, em seguida, abrir manualmente um novo menu de contexto. Para obter detalhes, consulte Como lidar com o evento ContextMenuOpening.

Para usar esse evento como um EventTrigger em um estilo, você deve referenciar o evento anexado subjacente:

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

(Esse uso é necessário porque a implementação do evento no FrameworkElement que expõe o evento de serviço subjacente não mapeia o ContextMenuOpening identificador de modo que você possa usá-lo em gatilhos).

ContextMenu em si é uma FrameworkElement classe derivada, mas esse evento não será gerado do menu de contexto que está sendo aberto como uma origem. O evento é gerado do elemento que "possui" o menu de contexto como uma propriedade e só é gerado quando um usuário tenta abrir um menu de contexto na interface do usuário. É possível para ContextMenu si mesmo ter uma ContextMenu propriedade, mas você deve evitar esse cenário (para obter detalhes, consulte FrameworkElement.ContextMenu).

A ContextMenu classe em si também tem um evento semelhante (Opened), mas Opened não oferece a oportunidade de cancelar a ação do usuário.

Informações de evento encaminhado

Campo Identificador ContextMenuOpeningEvent
Estratégia de roteamento Borbulhando
Delegar ContextMenuEventHandler
  • Substitua OnContextMenuOpening para implementar o tratamento de classe para esse evento em classes derivadas.

Aplica-se a

Confira também