有没有办法使用Wpf(C#)更改Web浏览器的上下文菜单

时间:2008-10-26 23:07:36

标签: c# wpf xaml default contextmenu

我想更改Web浏览器控件中提供的默认上下文菜单中的菜单项。我已经尝试过:webbrowser.contextmenu = mycontextmenu。 没有改变。有没有办法做到这一点?

4 个答案:

答案 0 :(得分:3)

答案 - 是的。 webbrowser控件中有一个设置: .IsWebBrowserContextMenuEnabled = false;

将此设置为false会禁用IE上下文菜单,允许您设置的任何一个规则根。 Simples ..

答案 1 :(得分:2)

答案 2 :(得分:1)

简短的回答是否定的。有关详细信息,请参阅this thread

答案 3 :(得分:1)

我正在尝试做同样的事情。我读了大约5篇codeproject文章(顺便提一下它们有点旧),但却无法让COM互操作部分正确。可能是因为我不能用C ++编程。

但后来我发现这个页面http://www.pinvoke.net/default.aspx/Interfaces/IDocHostUIHandler.html似乎很有希望。它包含一个声称提供所需功能的c#接口。但是我仍然无法让它一直工作,所以如果其他人可以为这个答案做出贡献,我会很感激。

由于我不知道你对c#有多熟悉(顺便说一下我差点就是菜鸟),我会在这里发布一些额外的步骤,使用VS2008。添加Microsoft.mshtml作为项目的引用,创建一个新的c#接口,并在界面上添加额外的3“using”语句。

using System.Windows;
using System.Runtime.InteropServices;
using mshtml;

并粘贴接口定义的代码。然后使WebBrowser容器实现此接口和所有方法。这是我到目前为止的距离。我仍然在寻找一种方法将浏览器事件重定向到容器。