public bool OnBeforeContextMenu(IWebBrowser browserControl, IContextMenuParams parameters) { var chromiumWebBrowser = browserControl as ChromiumWebBrowser; if (chromiumWebBrowser != null) { Application.Current.Dispatcher.Invoke(new Action(() => { try { var customContextMenu = chromiumWebBrowser.ContextMenu; customContextMenu.MenuItems.Clear(); if (parameters.IsEditable) { customContextMenu.MenuItems.Add(new MenuItem("撤销", (s, e) => { chromiumWebBrowser.Undo(); })); customContextMenu.MenuItems.Add(new MenuItem("重做", (s, e) => { chromiumWebBrowser.Redo(); })); customContextMenu.MenuItems.Add(new MenuItem("-")); } /*if (parameters.HasImageContents) * { * customContextMenu.MenuItems.Add(new MenuItem("图片另存为", (s, e) => { chromiumWebBrowser.Copy(); })); * customContextMenu.MenuItems.Add(new MenuItem("-")); * }*/ customContextMenu.MenuItems.Add(new MenuItem("剪切", (s, e) => { chromiumWebBrowser.Cut(); })); customContextMenu.MenuItems.Add(new MenuItem("复制", (s, e) => { chromiumWebBrowser.Copy(); })); customContextMenu.MenuItems.Add(new MenuItem("粘贴", (s, e) => { chromiumWebBrowser.Paste(); })); customContextMenu.MenuItems.Add(new MenuItem("-")); customContextMenu.MenuItems.Add(new MenuItem("后退", (s, e) => { chromiumWebBrowser.Back(); }) { Enabled = chromiumWebBrowser.CanGoBack }); customContextMenu.MenuItems.Add(new MenuItem("前进", (s, e) => { chromiumWebBrowser.Forward(); }) { Enabled = chromiumWebBrowser.CanGoForward }); customContextMenu.MenuItems.Add(new MenuItem("刷新", (s, e) => { chromiumWebBrowser.Reload(); }) { Enabled = chromiumWebBrowser.CanReload }); /*customContextMenu.MenuItems.Add(new MenuItem("-")); * customContextMenu.MenuItems.Add(new MenuItem("缩小", * (s, e) => * { * chromiumWebBrowser.ZoomLevel /= 1.2; * })); * customContextMenu.MenuItems.Add(new MenuItem("放大", * (s, e) => { chromiumWebBrowser.ZoomLevel *= 1.2; })); * customContextMenu.MenuItems.Add(new MenuItem("默认显示大小", * (s, e) => * { * chromiumWebBrowser.ZoomLevel = 1; * }));*/ customContextMenu.MenuItems.Add(new MenuItem("-")); customContextMenu.MenuItems.Add(new MenuItem("打印", (s, e) => { chromiumWebBrowser.Print(); })); Point point; if (MouseHelper.GetCursorPos(out point)) { int top = 0, left = 0; if (WindowState.Normal.Equals(Application.Current.MainWindow.WindowState)) { top = (int)Application.Current.MainWindow.Top + 20; left = (int)Application.Current.MainWindow.Left + 8; } customContextMenu.Show(chromiumWebBrowser, new Point(point.X - left, point.Y - top - 62)); } } catch (Exception exception) { _loggor.Error(exception); } })); } return(false); }