Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

hide webBrowser scrollbar wpf

I have a webbrowser and I am loading a .html file. The problem is that although I have already set the ScrollViewer.VerticalScrollBarVisibility to"Hidden", the scrollbar is still visible.

I have also tried this approach and it is not working

<WebBrowser x:Name="personalizedWebBrowser" HorizontalAlignment="Left"  VerticalAlignment="Top" 
                ScrollViewer.CanContentScroll="False"
                ScrollViewer.HorizontalScrollBarVisibility="Hidden" 
                ScrollViewer.VerticalScrollBarVisibility="Hidden"
                LoadCompleted="wb_LoadCompleted"/>


private void wb_LoadCompleted(object sender, System.Windows.Navigation.NavigationEventArgs e)
{
     mshtml.IHTMLDocument2 dom = (mshtml.IHTMLDocument2)personalizedWebBrowser.Document;
     dom.body.style.overflow = "hidden";
}

Could you please suggest anything else?

like image 709
AlexandruMN Avatar asked May 16 '26 07:05

AlexandruMN


1 Answers

I solved this problem by using windows forms WebBrowser control in wpf project:

    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        string curDir = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "\\help";

        System.Windows.Forms.Integration.WindowsFormsHost host =
            new System.Windows.Forms.Integration.WindowsFormsHost();
        System.Windows.Forms.WebBrowser webBrowser1 = new System.Windows.Forms.WebBrowser();
        host.Child = webBrowser1;

        webBrowser1.DocumentCompleted += webBrowser1_DocumentCompleted;

        string sFileName = "file:///{0}/index.html";

        webBrowser1.Url = new Uri(String.Format(sFileName, curDir));
        webBrowser1.ScrollBarsEnabled = false;
        this.grid1.Children.Add(host);
    }

    private void webBrowser1_DocumentCompleted(object sender, System.Windows.Forms.WebBrowserDocumentCompletedEventArgs e)
    {
        System.Windows.Forms.WebBrowser webBrowser1 = sender as System.Windows.Forms.WebBrowser;
        if(webBrowser1==null)return;
        webBrowser1.Document.Body.Style = "overflow:hidden";
    }

grid1 is used as a container for webBrowser1

We also need to add in the project the following assembly references: WindowsFormsIntegration, System.Windows.Forms

like image 150
Igor Chepik Avatar answered May 17 '26 20:05

Igor Chepik



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!