Ler em inglês

Compartilhar via


FrameworkElement.ContextMenuOpening Evento

Definição

Ocorre quando qualquer menu de contexto no elemento é aberto.

C#
public event System.Windows.Controls.ContextMenuEventHandler ContextMenuOpening;

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:

XAML
<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

Produto Versões
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

Confira também