2017-05-02 11 views
1

나는 C# WPF 응용 프로그램에서 CefSharp 57을 사용하고 있습니다.
나는 특정 웹 페이지에서 수직 및 수평 스크롤을 모두 숨길.웹 페이지가로드 될 때 CefSharp에서 가로 및 세로 스크롤 막대를 숨기려면 어떻게해야합니까?

나는 CefSharp 직접 할 수있는 방법을 찾을 수있었습니다.
내가 네이티브 윈폼 브라우저를 사용 해요 ScrollBarsEnabled 유사한 속성이 보이지 않는다.

나는 페이지가 숨겨진에 대한 신체의 오버 플로우를 설정하는 렌더링하지만이 효과가 없습니다 후 좀 CSS/JS를 주입 할 수있을 줄 알았는데.
private void OnBrowserFrameLoadEnd(object sender, FrameLoadEndEventArgs args) 
{ 
    if (args.Frame.IsMain) 
    { 
     // Shows an alert after page is loaded so it definitely works 
     args 
      .Browser 
      .MainFrame 
      .ExecuteJavaScriptAsync("alert('HELLO!'); 

     // Scrollbars are still visible after this fires 
     args 
      .Browser 
      .MainFrame 
      .ExecuteJavaScriptAsync(
      "(function() { document.body.style.overflow = 'hidden'; });"); 
    } 
} 

나는 거기에 스크롤바 나 자신을 그릴하고 투명하게 할 수있는 방법했지만, 난이 할 수있는 방법을 찾을 수 없습니다 있는지 보았다.

CefSharp를 사용하여 특정 페이지의 수직 및 수평 스크롤을 숨길 수있는 방법이 있습니까? 내가 원래 보였다 코드가 정확한지

+0

쉽게 스크롤바를 숨기려면이 매개 변수를 추가 할 수 있습니다. devtools를 열고 수동으로 스크립트를 실행하십시오. 유효한지 확인하십시오. – amaitland

답변

3

은, 난 그냥 제공되는 스크립트를 단순화하는 데 필요한 :

WebBrowser.FrameLoadEnd += OnBrowserFrameLoadEnd; 

private void OnBrowserFrameLoadEnd(object sender, FrameLoadEndEventArgs args) 
{ 
    if (args.Frame.IsMain) 
    { 
     args 
      .Browser 
      .MainFrame 
      .ExecuteJavaScriptAsync(
      "document.body.style.overflow = 'hidden'"); 
    } 
} 

스크롤바는 두 번째 볼 수 있습니다 내 목적에 맞는있는 사라지기 전에.

0

당신은 가장 쉬운 옵션을 자바 스크립트/CSS를한다 사용

Brow = new CefSharp.WinForms.ChromiumWebBrowser("https://www.google.com") { 
       Dock = DockStyle.Top, // Hide scrollbars 
      }; 
+0

이 대답은 winforms 버전입니다. CefSharp.Wpf.ChromiumWebBrowser에는 Dock 속성이 없습니다. – Travis