通过Webbrowser在PDF查看器上禁用上下文菜单

时间:2012-07-26 15:55:17

标签: wpf contextmenu

我正在尝试通过webbrowser UIElement禁用PDF文件上的右键单击(井上下文菜单)。但无论它从未调用过所需的处理程序(与webbrowser加载通常的html相同的行为,而不是其他UIElements)。

    public override UIElement Play()
    {
        base.Play();

        //It will be represented in a Webbrowser element
        WebBrowser element = new WebBrowser();

        element.ContextMenuOpening +=new ContextMenuEventHandler(element_ContextMenuOpening);

        //navigate to the current path of the file in the HDD, adding some parameters to avoid the Adobe Reader pannels to be shown
        element.Source = new Uri(path+"#toolbar=0&navpanes=0");
        return element;
    }

    public void element_ContextMenuOpening(Object obj, ContextMenuEventArgs e)
    {
        Console.WriteLine("CONTEXT MENU PDF");
    }

从不打印“上下文菜单PDF”行。我也尝试使用MouseDown,但仍然保持不变。

编辑1:感谢MephestoKhaan,我设法通过webbrowser在Web上完成这项工作。对于PDF,它应该是类似的东西,我仍然在寻找正确的类来将Webbrowser.document对象强制转换为。

    public override UIElement Play()
    {
        base.Play();

        //the element will be represented in a webbroser
        element = new WebBrowser();
        //load the web indicated by the path (url)
        element.NavigateToString(Path);
        element.Source = new Uri(Path);

        //disable context menu
        mshtml.HTMLDocumentEvents2_Event iEvent;
        iEvent = (mshtml.HTMLDocumentEvents2_Event) element.Document;
        iEvent.oncontextmenu += new mshtml.HTMLDocumentEvents2_oncontextmenuEventHandler(iEvent_oncontextmenu); 


        return element;
    }

    bool iEvent_oncontextmenu(mshtml.IHTMLEventObj e)
    {
        return false;
    }

2 个答案:

答案 0 :(得分:1)

嗯,MephestoKhaan是webbrowsers上的元素的正确方法(在它的例子中:webs)但是在通过Webbrowser与Acrobat Reader挣扎之后,我改为福昕阅读器。

使用Foxit我可以直接在首选项上禁用所有菜单和右键单击事件,并在全屏模式下打开它(不是webbrowser,而是另一个窗口)。这不是我要求的,但解决了我的问题(PDF查看器上没有上下文菜单)。

对于记录>如果你想在一个窗口上有按钮或一些自定义界面,可以使用Popup并将窗口设置为覆盖所有内容。

答案 1 :(得分:0)

试试这个:http://support.microsoft.com/?kbid=312777(从这里WPF WebBrowser Mouse Events not working as expected。似乎WPF本身没有管理控件,所以你必须将处理程序绑定到文档。