我在使用 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 标准菜单。ContextMenu(在名为 VisioContextMenu 的代码中)出现,但大约 2 秒后,如果我不做任何事情或与之交互,它就会消失。
当我想显示 ContextMenu 时,我总是将 IsOpen 和 StaysOpen 属性设置为 true,但它的行为如前所述。我真的不知道该怎么办!
你有一些提示吗?谢谢弗朗西斯科