如何使用C#禁用Chromium Web浏览器中的右键单击上下文菜单?
我在Chromium Embedded 3(DCEF3)中找到了这个禁用上下文菜单,但我不熟悉语法(我正在使用C#),而且我没有在名为OnBeforeContextMenu的CefSharp.WinForms.ChormiumWebBrowser类上看到一个事件.
mar*_*kru 13
我遇到了同样的问题,但由于接口IMenuHandler(重命名为IContextMenuHandler)已经有一些更改而且不再存在,因此无法再使用上述解决方案
bool OnBeforeContextMenu(IWebBrowser browser);
Run Code Online (Sandbox Code Playgroud)
现在有以下签名:
void OnBeforeContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model);
Run Code Online (Sandbox Code Playgroud)
问题中链接的SO问题(在Chromium Embedded 3(DCEF3)中禁用上下文菜单)与pascal和inno设置脚本有关,但是为C#调整了接受的答案并ChromiumWebBrowser为我工作.解决方案是在执行中清除模型参数OnBeforeContextMenu.执行IContextMenuHandler可以看起来像这样:
public class CustomContextHandler : IContextMenuHandler
{
public void OnBeforeContextMenu(IWebBrowser browserControl, CefSharp.IBrowser browser, IFrame frame, IContextMenuParams parameters,
IMenuModel model)
{
model.Clear();
}
public bool OnContextMenuCommand(IWebBrowser browserControl, CefSharp.IBrowser browser, IFrame frame, IContextMenuParams parameters,
CefMenuCommand commandId, CefEventFlags eventFlags)
{
return false;
}
public void OnContextMenuDismissed(IWebBrowser browserControl, CefSharp.IBrowser browser, IFrame frame)
{
}
}
Run Code Online (Sandbox Code Playgroud)
然后在创建chrome Web浏览器对象的代码中:
browser = new ChromiumWebBrowser(url);
browser.MenuHandler = new CustomContextHandler();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7052 次 |
| 最近记录: |