我在使用WPF应用程序中托管的Visio绘图控制上的上下文菜单时遇到了一些麻烦。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标准的。上下文菜单(在代码中命名为VisioContextMenu)显示,但大约2秒后,它消失了,如果我不做任何事情或我与它交互。
当我想要显示上下文菜单时,我总是将IsOpen和StaysOpen属性设置为true,但它的行为如前所述。我真不知道该怎么办!
你有什么提示吗?谢谢弗朗西斯科·
如果你发布你的代码也会有所帮助,但我会说,确保你正确地处理mouseup事件。
这可能是唯一的问题-尝试删除该事件。