0

我在使用 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,但它的行为如前所述。我真的不知道该怎么办!

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

4

1 回答 1

0

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

仅此一项就可能是问题所在 - 尝试删除该事件。

于 2012-02-28T19:55:48.983 回答