标签:mis 主程序 ast false handlers comm chromium iframe control
原文:使用CefSharp在.Net程序中嵌入Chrome浏览器(七)——右键菜单一个常用的功能就是禁止浏览器本身的右键菜单,靠在WPF中拦截鼠标事件是不行的,可以通过设置MenuHandler来实现。
首先实现一个IContextMenuHandler。
public class NullMenuHandler : IContextMenuHandler { public bool RunContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model, IRunContextMenuCallback callback) { return false; } public void OnBeforeContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model) { model.Clear(); } public void OnContextMenuDismissed(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame) { } public bool OnContextMenuCommand(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IContextMenuParams parameters, CefMenuCommand commandId, CefEventFlags eventFlags) { throw new NotImplementedException(); } }
然后指定chrome的MenuHandler即可。
_webView = new ChromiumWebBrowser()
{
MenuHandler = new NullMenuHandler()
};
这种方式也可以自定义右键菜单,详细信息参考如下。MenuHandler.cs
定制右键菜单也可以采用如下做法:
这样的方式下,可以直接使用WPF的右键菜单,并且也可以根据html元素的事件灵活显示菜单,虽然工作量大些,但更加灵活和自由,也可以和系统的右键菜单风格一致。
使用CefSharp在.Net程序中嵌入Chrome浏览器(七)——右键菜单
标签:mis 主程序 ast false handlers comm chromium iframe control
原文地址:https://www.cnblogs.com/lonelyxmas/p/10249467.html