This old question came up as the top google result and it was not easy to find a good solution, so hopefully this helps anyone else having to mess with cefsharp. You can add an "Inspect" context-menu option by implementing IContextMenuHandler.
public class DevToolsMenuHandler : IContextMenuHandler
{
public void OnBeforeContextMenu(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IContextMenuParams parameters,
IMenuModel model)
{
model.AddItem(CefMenuCommand.CustomFirst, "Inspect");
}
public bool OnContextMenuCommand(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IContextMenuParams parameters,
CefMenuCommand commandId, CefEventFlags eventFlags)
{
if (commandId != CefMenuCommand.CustomFirst) return false;
browser.ShowDevTools(null, parameters.XCoord, parameters.YCoord);
return true;
}
public void OnContextMenuDismissed(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame)
{
}
public bool RunContextMenu(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IContextMenuParams parameters,
IMenuModel model, IRunContextMenuCallback callback)
{
return false;
}
}
Then assign your custom menu handler to your CEF browser instance like so:
CefBrowser.MenuHandler = new DevToolsMenuHandler();