WindowsFormsHost.ContextMenu消失了

时间:2011-12-16 18:33:48

标签: c# wpf contextmenu visio windowsformhost

我在WPF应用程序中托管的Visio Drawing Control上使用上下文菜单时遇到了一些麻烦。 DrawingControl由WindowsFormsHost控件托管,我想覆盖添加自定义ContextMenu的标准右键单击行为,如下所示:

<WindowsFormsHost Grid.Row="0" Grid.Column="1" Name="_WFHost"
        SnapsToDevicePixels="True">
        <visio:AxDrawingControl x:Name="_drawingControl"/> 

        <WindowsFormsHost.ContextMenu>
            <ContextMenu StaysOpen="True" Name="VisioContextMenu">
                <MenuItem x:Name="QuotaMenuItem" Header="Quota" Click="QuotaMenuItem_Click"/>

                <MenuItem x:Name="TraslaMenuItem" Header="Trasla" Click="TraslaMenuItem_Click"/>
            </ContextMenu>
        </WindowsFormsHost.ContextMenu>
    </WindowsFormsHost>

在代码隐藏文件中,我管理DrawingControl的mouseUp事件,以获得我的上下文菜单而不是Visio标准菜单。 ContextMenu(在名为VisioContextMenu的代码中)显示但在大约2秒后它会消失,如果我什么都不做或我与它交互。

当我想显示ContextMenu时,我总是将IsOpen和StaysOpen属性设置为true,但它的行为如前所述。我真的不知道该怎么做!

你有一些提示吗? 谢谢 弗朗西斯

1 个答案:

答案 0 :(得分:0)

如果您发布了代码也会有所帮助,但我会说确保您正确处理了mouseup事件。

仅此一点可能是问题 - 尝试删除该事件。