我想用以下样式重新定义我的ContextMenu
<ControlTemplate x:Key="{x:Static MenuItem.SubmenuItemTemplateKey}" TargetType="MenuItem">
<Border x:Name="templateRoot" BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
Background="{TemplateBinding Background}" Height="22" SnapsToDevicePixels="true">
<Grid>
<Button>
<ContentPresenter
Name="HeaderHost"
ContentSource="Header"
RecognizesAccessKey="True"/>
</Button>
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsHighlighted" Value="True">
<Setter Property="Background" TargetName="templateRoot" Value="Transparent"/>
<Setter Property="BorderBrush" TargetName="templateRoot" Value="{StaticResource MenuItem.Highlight.Border}"/>
</Trigger>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Foreground" Value="{StaticResource DisabledForegroundBrush}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
一旦我点击我的上下文菜单项,它触发我的回调,但菜单本身留在屏幕上。如何触发关闭逻辑?
谢谢
Button
正在处理点击事件,并阻止它从可视化树冒泡到MenuItem
。
在按钮上设置IsHitTestVisible
会阻止Button
处理点击事件,但也会阻止MouseOver/Pressed
样式化。
<Button IsHitTestVisible="False">
<ContentPresenter
Name="HeaderHost"
ContentSource="Header"
RecognizesAccessKey="True"/>
</Button>