Вы можете создать новый шаблон для кнопки и затем предоставить контекстное меню в визуальном дереве шаблона. Примерно так:
<Style TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border>
<ContentPresenter HorizontalAlignment="Center"
VerticalAlignment="Center"/>
<Border.ContextMenu>
<ContextMenu Name="contextMenu">
<MenuItem Header="Here's a menu."/>
</ContextMenu>
</Border.ContextMenu>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Затем вы можете запустить его, используя свойство кнопки IsPressed
, и подключить его, используя установщик с contextMenu в качестве TargetName
.
.
Мой реальный вопрос: для чего вы это используете? Открытие контекстного меню при щелчке левой кнопкой мыши по своей сути будет некорректным, поскольку контекстные меню по своей природе закрываются при щелчке по любому другому элементу. Это означает, что этот триггер, даже при правильной настройке, просто сразу откроет и закроет контекстное меню. Мне любопытно, почему вам нужно такое поведение; возможно, есть лучший способ сделать это, чем использовать контекстное меню.