答案 0 :(得分:24)
这是像我这样懒惰的人的实施。它基于CefSharp v53.0.0
public class CustomMenuHandler : CefSharp.IContextMenuHandler
{
public void OnBeforeContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model)
{
model.Clear();
}
public bool OnContextMenuCommand(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, CefMenuCommand commandId, CefEventFlags eventFlags)
{
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;
}
}
如何使用
ChromiumWebBrowser browser = new ChromiumWebBrowser();
browser.MenuHandler = new CustomMenuHandler();
答案 1 :(得分:2)
如果您实施IContextMenuHandler
,则可以控制ContextMenu
。下面的两个链接演示了所需的内容(以及其他一些有用的功能)。
一般来说,CefSharp.WinForms.Example
项目会演示很多功能,如果您需要其他功能,请查看它。
答案 2 :(得分:1)
最简单的方法是将事件PreviewMouseRightButtonUp和PreviewMouseRightButtonDown设置为具有相同功能的事件,其e.Handle = true。右键单击时,此解决方案将不会显示cefsharp的上下文菜单。
XAML:
$("#sort-col-1").on("click", function(){
var icon = $(this).find(".glyphicon");
if(icon.hasClass("glyphicon-sort-by-attributes")){
icon.removeClass("glyphicon-sort-by-attributes");
icon.addClass("glyphicon-sort-by-attributes-alt");
}
else{
icon.removeClass("glyphicon-sort-by-attributes-alt");
icon.addClass("glyphicon-sort-by-attributes");
}
});
函数:
<wpf:ChromiumWebBrowser Grid.Row="1" x:Name="Browser" Margin="30,0" IsBrowserInitializedChanged="Browser_IsBrowserInitializedChanged" PreviewMouseRightButtonDown="Browser_PreviewMouseRightButton" PreviewMouseRightButtonUp="Browser_PreviewMouseRightButton"/>
答案 3 :(得分:0)
<div class="input-group" xmlns="">
<input #searchField autofocus type="text" class="form-control"
[(ngModel)]="searchValue" #sv="ngModel" (keyup.enter)="doSearch(searchValue)">
<button *ngIf="(sv.dirty || sv.touched)" class="btn-primary fa fa-search" id="search-icon"
(click)="doSearch(searchValue)"></button>
<span *ngIf="!(sv.dirty || sv.touched)">Your text here</span>
</div>
答案 4 :(得分:0)
您可以这样做。...
ChromiumWebBrowser browser = new ChromiumWebBrowser();
browser.LoadingStateChanged += (sender, args) =>
{
if (args.IsLoading == false)
{
_browser.ExecuteScriptAsync("document.oncontextmenu = function() { return false; };");
}
};
我正在使用此版本:
<package id="CefSharp.Wpf" version="78.3.10-CI3386" targetFramework="net48" />