2016-11-09 5 views
0

WPF 응용 프로그램에서 CefSharp 웹 브라우저에서 URL을로드하고 있습니다. 내가 마우스의 오른쪽 클릭하면 준 경우, 기본 컨텍스트 메뉴 이미지 아래로 표시됩니다WPF - CefSharp 크롬 웹 브라우저에서 마우스 오른쪽 버튼을 클릭하면 기본 컨텍스트 메뉴가 삭제됩니다.

enter image description here

내 XAML 코드가

<Window x:Class="StoneApp.WebviewWindow" WindowState="Maximized" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    xmlns:cefSharp="clr-namespace:CefSharp.Wpf;assembly=CefSharp.Wpf" 
    xmlns:local="clr-namespace:StoneApp" 
    mc:Ignorable="d" 
    Title="MyApp"> 

<DockPanel> 

    <Grid x:Name="mygrid"> 
     <cefSharp:ChromiumWebBrowser x:Name="my_webview" IsBrowserInitializedChanged ="InitializeBrowser" Grid.Row="0" MouseRightButtonDown="Rightbtn_MouseDown"/> 
    </Grid> 

</DockPanel> 

</Window> 

내 xaml.cs 코드는

public WebviewWindow(string webresponse) 
    { 
     InitializeComponent(); 
     this.webresponse = webresponse; 
    } 

    private void InitializeBrowser(object sender, DependencyPropertyChangedEventArgs e) 
    { 
     my_webview.Load(webresponse); 
    } 

    private void Rightbtn_MouseDown(object sender, MouseButtonEventArgs e) 
    { 
     if (e.RightButton == MouseButtonState.Pressed) 
     { 
      e.Handled = false; 
     } 
    } 

때입니다 나는 Rightclick에게 'Rightbtn_MouseDown'함수도 호출 할 수 없다. 그래서 내 문제는 웹 브라우저보기에서 오른쪽 클릭했을 때 기본 컨텍스트 메뉴를 삭제하고 싶습니다. 이 문제와 관련하여 도움을 주실 수 있습니까? 미리 감사드립니다.

답변

0

IContextMenuHandler 기본값을 무시하면됩니다.

webView.MenuHandler = new MenuHandler(); 

internal class MenuHandler : IContextMenuHandler 
{ 
    public bool IContextMenuHandler.RunContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model, IRunContextMenuCallback callback) 
    { 
     return false; 
    } 

    public void IContextMenuHandler.OnBeforeContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model) 
    { 
     model.Clear(); 
    } 
} 

당신은 여기에 대한 자세한 내용을보실 수 있습니다 : https://github.com/cefsharp/CefSharp/blob/master/CefSharp.Wpf.Example/Handlers/MenuHandler.cs