0
私のWindowsフォームアプリケーション(WinForms)では、CEFSharpを使用してWebページを開きます。右クリックコンテキストを変更して、開かれたURLをユーザーが表示できるようにします。現在、コンテキストには「戻る」「進む」「印刷する」「ソースを表示」URIはCEFSharpを使用してユーザに表示できますか?
私のWindowsフォームアプリケーション(WinForms)では、CEFSharpを使用してWebページを開きます。右クリックコンテキストを変更して、開かれたURLをユーザーが表示できるようにします。現在、コンテキストには「戻る」「進む」「印刷する」「ソースを表示」URIはCEFSharpを使用してユーザに表示できますか?
コメントは、ボールが転がっています。ここに私の実装があります。私はこれが他の誰かを助けることを望む。
WinForms.ChromiumWebBrowserのインスタンスを初期化するときは、プロパティMenuHandlerをIContextMenuHandlerのインスタンスに設定します。
chromeBrowser = New WinForms.ChromiumWebBrowser(uri)
chromeBrowser.MenuHandler = New Classes.CefBasicMenuHandler()
Controls.Add(chromeBrowser)
IContextMenuHandlerの実装では、コンテキストメニューを制御できます。
Public Class CefBasicMenuHandler
Implements IContextMenuHandler
private const ShowDevTools as Integer = 26501
private const CloseDevTools as Integer = 26502
Private Const CopyUrlAddress as Integer = 26503
Public Sub OnBeforeContextMenu(browserControl As IWebBrowser, browser As IBrowser, frame As IFrame, parameters As IContextMenuParams, model As IMenuModel) Implements IContextMenuHandler.OnBeforeContextMenu
'//To disable the menu then call clear
model.Clear()
'//Add new custom menu items
model.AddItem(CType(CopyUrlAddress, CefMenuCommand), "Copy URL address")
model.AddSeparator()
model.AddItem(CType(ShowDevTools, CefMenuCommand), "Show DevTools")
model.AddItem(CType(CloseDevTools, CefMenuCommand), "Close DevTools")
model.AddSeparator()
model.AddItem(CefMenuCommand.Reload, "Reload")
model.AddItem(CefMenuCommand.Copy, "Copy")
End Sub
Public Function OnContextMenuCommand(browserControl As IWebBrowser, browser As IBrowser, frame As IFrame, parameters As IContextMenuParams, commandId As CefMenuCommand, eventFlags As CefEventFlags) As Boolean Implements IContextMenuHandler.OnContextMenuCommand
Dim commandId1 As Integer = CType(commandId, Integer)
If commandId1 = ShowDevTools Then
browser.ShowDevTools()
End If
If commandId1 = CloseDevTools Then
browser.CloseDevTools()
End If
If commandId1 = CopyUrlAddress Then
Clipboard.SetText(parameters.PageUrl)
End If
Return False
End Function
Public Sub OnContextMenuDismissed(browserControl As IWebBrowser, browser As IBrowser, frame As IFrame) Implements IContextMenuHandler.OnContextMenuDismissed
End Sub
Public Function RunContextMenu(browserControl As IWebBrowser, browser As IBrowser, frame As IFrame, parameters As IContextMenuParams, model As IMenuModel, callback As IRunContextMenuCallback) As Boolean Implements IContextMenuHandler.RunContextMenu
Return False
End Function
End Class
あなたは、CEFは、デバッグサポートをしていhttp://cefsharp.github.io/api/55.0.0/html/T_CefSharp_IContextMenuHandler.htm – amaitland
を使用して、コンテキストメニューをカスタマイズすることができます!この回答は私に必要なものを十分に与えました http://stackoverflow.com/a/31577099/139689 – MADCookie