我有一个Topmost="True"
的窗口。
<Window ... bunch of code ....
Topmost="True" >
现在这样做可以有效地禁用表单上的所有上下文菜单。菜单在XAML中定义,如下所示:
<StackPanel Width="120" Height="50" MouseMove="Drag_MouseMove">
<Image Source="{Binding" />
<TextBlock Text={Binding}" />
<StackPanel.ContextMenu>
<ContextMenu Name="myMenu" StaysOpen="True">
... bunch of code ...
</ContextMenu>
</StackPanel.ContextMenu>
</StackPanel>
有没有办法重新启用上下文菜单?我也愿意考虑Topmost="True"
的替代方案。
答案 0 :(得分:0)
我无法重现你的问题。我已经使用这个近似代码创建了一个新项目,并且上下文菜单显示。
也许问题来自别的东西?喜欢绑定? (从经验谈起)
<Window x:Class="WpfApplication8.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525" Topmost="True">
<Grid>
<StackPanel Width="120" Height="50" Background="Gray">
<TextBlock Text="yo" />
<TextBlock Text="yo" />
<TextBlock Text="yo" />
<TextBlock Text="yo" />
<TextBlock Text="yo" />
<TextBlock Text="yo" />
<TextBlock Text="yo" />
<TextBlock Text="yo" />
<StackPanel.ContextMenu>
<ContextMenu Name="myMenu" StaysOpen="True">
<MenuItem Header="hello" />
</ContextMenu>
</StackPanel.ContextMenu>
</StackPanel>
</Grid>
</Window>
答案 1 :(得分:0)
我怀疑菜单显示的很好。但是,菜单不是顶层项目,因此它最终位于最顶层的MainWindow之后。我遇到了同样的问题,还没有找到如何确保菜单始终显示的答案。