FrameworkElement.ContextMenuOpening Evento
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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.