C# VSTO Word窗口右键单击事件之前';s取消参数被图像关联菜单忽略

C# VSTO Word窗口右键单击事件之前';s取消参数被图像关联菜单忽略,c#,ms-word,office365,vsto,C#,Ms Word,Office365,Vsto,我正在尝试创建自己的上下文菜单,以显示Word处于自定义“模式”的时间。要做到这一点,我想禁用所有默认的上下文菜单,以支持我的。这在右键单击文本时非常有效,但在右键单击图像或文本框(通常似乎是对象)时则不起作用。右键单击图像时,事件的Cancel参数似乎被忽略,因此它不会阻止Word的上下文菜单显示 我是做错了什么,还是这是文字上的错误 有人有全局添加上下文菜单项并隐藏其余项的解决方案吗 我的目标的替代方案也可能是解决方案 我曾尝试使用ribbon.xml,但有许多不同的上下文菜单,其中有许多不

我正在尝试创建自己的上下文菜单,以显示Word处于自定义“模式”的时间。要做到这一点,我想禁用所有默认的上下文菜单,以支持我的。这在右键单击文本时非常有效,但在右键单击图像或文本框(通常似乎是对象)时则不起作用。右键单击图像时,事件的Cancel参数似乎被忽略,因此它不会阻止Word的上下文菜单显示

我是做错了什么,还是这是文字上的错误

有人有全局添加上下文菜单项并隐藏其余项的解决方案吗

我的目标的替代方案也可能是解决方案

我曾尝试使用ribbon.xml,但有许多不同的上下文菜单,其中有许多不同的按钮、图库等,我必须主动隐藏它们。另外,我必须复制大量XML才能将我的按钮添加到所有这些菜单中。在这个过程中,我发现列出这些上下文菜单项的文档缺少完整的列表,这让我不得不寻找按钮idMso。另外,如果Microsoft要添加一个新项目,那么我必须发布一个更新来主动删除新项目。处理上下文菜单的整个ribbon.xml方法是实现简单请求的一种非常困难的方法(在我看来)

如果右键单击文本(带或不带选择范围)、表格或许多其他内容,您将看到消息框显示。当取消时,取消参数将阻止显示默认上下文菜单

但是,当右键单击图像时,它会显示消息框(与以前一样),但当取消单击时,它仍会显示Word的图像上下文菜单

以下是我的Word版本:

Office 365业务, Word版本1903(内部版本11425.20204)或v16.0.11425.20200


提前谢谢你

是的,看起来像个虫子。即使使用Ribbon XML,在2013+中也有一些东西是无法禁用的:样式/裁剪。它们可以被禁用,但不能删除。感谢您的澄清。我希望情况不是这样,但事实就是这样。希望微软有一天能解决它!
public partial class ThisAddIn
{

    internal bool CustomContextMenuMode = true;

    private void ThisAddIn_Startup(object sender, System.EventArgs e)
    {
        ThisAddIn.WordApplication.WindowBeforeRightClick += new Word.ApplicationEvents4_WindowBeforeRightClickEventHandler(Application_WindowBeforeRightClick);
    }

    private static void Application_WindowBeforeRightClick(Word.Selection Sel, ref bool Cancel)
    {
        if (CustomContextMenuMode == true)
        {
            MessageBox.Show("Context menu shows here!");
            Cancel = true;
            return;
        }
        Cancel = false;
    }
}