WindowsFormsHost.ContextMenu 消失

发布于 2024-12-21 17:57:28 字数 1016 浏览 1 评论 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,但它的行为如前所述。我真的不知道该怎么办!

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

I'm having some troubles using context menu on Visio Drawing Control hosted in a WPF application. The DrawingControl is hosted by a WindowsFormsHost control, and I want to override the standard right click behaviour adding a custom ContextMenu like this:

<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>

In the codebehind file I manange the mouseUp event of the DrawingControl in order to obtain that my context menu shows up instead of the Visio standard one.
The ContextMenu (in the code named as VisioContextMenu) shows up but after about 2 seconds it disappears both if I don't do anything or I interact with it.

When I want to show the ContextMenu I always set IsOpen and StaysOpen properties to true, but it behaves as stated before. I really don't know what to do!

Do you have some hints?
Thanks
Francesco

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

嘿看小鸭子会跑 2024-12-28 17:57:28

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

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

It would help if you posted your code as well, but I would say make sure that you are correctly handling the mouseup event.

That alone could be the problem - try removing that event.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文