protected override void OnBeforeContextMenu(CefBrowser browser, CefFrame frame, CefContextMenuParams menuParams, CefMenuModel model) { var count = model.Count; if (count > 0) { for (int i = 0; i < count; i++) { var commandId = (CefMenuId)model.GetCommandIdAt(i); switch (commandId) { case CefMenuId.Undo: case CefMenuId.Redo: case CefMenuId.Cut: case CefMenuId.Copy: case CefMenuId.Paste: case CefMenuId.Delete: case CefMenuId.SelectAll: case CefMenuId.Find: break; default: break; } } } if (AppHelper.EnableDevtools) { model.Remove((int)CefMenuId.Print); model.Remove((int)CefMenuId.ViewSource); if (model.Count >= 1) { model.RemoveAt(model.Count - 1); } model.AddItem(SHOW_DEV_TOOLS, "&Show DevTools"); } else { model.Clear(); // 禁用右键菜单 } //model.InsertItemAt(model.Count > 0 ? 1 : 0, (int)CefMenuId.ReloadNocache, "Refresh"); //model.AddSeparator(); //model.AddItem(SHOW_DEV_TOOLS, "&Show DevTools"); //model.AddItem(INSPECT_ELEMENT, "Inspect element"); //CefMenuModel submenu = model.AddSubMenu(0, "Submenu Test"); //submenu.AddItem((int)CefMenuId.Copy, "Copy"); //submenu.AddItem((int)CefMenuId.Paste, "Paste"); //submenu.SetColorAt(submenu.Count - 1, CefMenuColorType.Text, CefColor.FromArgb((int)Colors.Blue.ToUint32())); //submenu.AddCheckItem(0, "Checked Test"); //submenu.SetCheckedAt(submenu.Count - 1, true); //submenu.AddRadioItem(0, "Radio Off", 0); //submenu.AddRadioItem(0, "Radio On", 1); //submenu.SetCheckedAt(submenu.Count - 1, true); }
protected override void OnBeforeContextMenu(CefBrowser browser, CefFrame frame, CefContextMenuParams state, CefMenuModel model) { for (var index = model.Count - 1; index >= 0; index--) { var nCmd = model.GetCommandIdAt(index); if (!ContextMenuHelper.IsEdition(nCmd) && !ContextMenuHelper.IsUserDefined(nCmd)) { model.Remove(nCmd); } } if (WinFormium.Runtime.IsDebuggingMode && (state.ContextMenuType & CefContextMenuTypeFlags.Editable) != CefContextMenuTypeFlags.Editable) { if (model.Count > 0) { model.AddSeparator(); } model.AddItem((int)((CefMenuId)ContextMenuHelper.MenuIdentifier.MENU_ID_SHOW_DEVTOOLS), Resources.Messages.ContextMenu_ShowDevTools); model.AddItem((int)((CefMenuId)ContextMenuHelper.MenuIdentifier.MENU_ID_HIDE_DEVTOOLS), Resources.Messages.ContextMenu_CloseDevTools); } var e = new BeforeContextMenuEventArgs(frame, state, model); _owner.InvokeIfRequired(() => _owner.OnBeforeContextMenu(e)); }
/// <summary> /// The on before context menu. /// </summary> /// <param name="browser"> /// The browser. /// </param> /// <param name="frame"> /// The frame. /// </param> /// <param name="state"> /// The state. /// </param> /// <param name="model"> /// The model. /// </param> protected override void OnBeforeContextMenu(CefBrowser browser, CefFrame frame, CefContextMenuParams state, CefMenuModel model) { // To disable the menu then call clear model.Clear(); // Removing existing menu item // Remove "View Source" option model.Remove((int)CefMenuId.ViewSource); // Add new custom menu items model.AddItem((int)((CefMenuId)ShowDevTools), "Show DevTools"); model.AddItem((int)((CefMenuId)CloseDevTools), "Close DevTools"); }