2011-07-21 65 views
0

启用的ContextMenu我有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

这是否回答你的问题? http://social.msdn.microsoft.com/Forums/en/vswpfdesigner/thread/7f33954b-4fd9-4047-a111-2183e8fa6b6b –

+0

什么是你想通过隐藏所有的菜单来实现呢? – sll

+0

@sil:我不想隐藏菜单。他们一个人躲起来。 – code4life

回答

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>