cefsharp如何自定有浏览器右键菜单
新建一个自定义菜单类
internal class CustomMenuHandler : CefSharp.IContextMenuHandler { public void OnBeforeContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model) { //清空旧菜单 model.Clear(); // 添加新菜单 model.AddItem((CefMenuCommand)26501, "打开开发工具"); model.AddItem((CefMenuCommand)26502, "关闭开发工具"); //添加分割线 model.AddSeparator(); // 再增加一个 model.AddItem((CefMenuCommand)26503, "收藏网页"); } public bool OnContextMenuCommand(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, CefMenuCommand commandId, CefEventFlags eventFlags) { if (commandId == (CefMenuCommand)26501) { browser.GetHost().ShowDevTools(); return true; } // 根据id来处理 if (commandId == (CefMenuCommand)26502) { browser.GetHost().CloseDevTools(); return true; } // if (commandId == (CefMenuCommand)26503) { MessageBox.Show("成功了"); return true; } return false; } public void OnContextMenuDismissed(IWebBrowser browserControl, IBrowser browser, IFrame frame) { } public bool RunContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model, IRunContextMenuCallback callback) { return false; } }
在创建brower后增加一条属性
browser = new ChromiumWebBrowser("bfw.wiki") { Dock = DockStyle.Fill, }; browser.LifeSpanHandler = new OpenPageSelf(); browser.MenuHandler = new CustomMenuHandler();
ok大工搞成
网友评论0