简体   繁体   English

折叠时如何使用 ChromiumWebBrowser

[英]How can I use a ChromiumWebBrowser when Collapsed

I have a ChromiumWebBrowser control with Visibility of Collapsed .我有一个Visibility of CollapsedChromiumWebBrowser控件。 Until the visibility is set to Visible , the page is not loaded and many calls fail with:在可见性设置为Visible ,页面不会加载并且许多调用失败:

System.Exception : The browser has not been initialized. System.Exception : 浏览器尚未初始化。 Load can only be called after the underlying CEF browser is initialized ( CefLifeSpanHandler::OnAfterCreated ). Load只能在底层 CEF 浏览器初始化后调用( CefLifeSpanHandler::OnAfterCreated )。

How can I have the page be loaded when the Visibility is Collapsed ?Visibility Collapsed时如何加载页面?

Create a subclass of ChromiumWebBrowser as described in Render problems when Initial Visibility Collapsed .创建ChromiumWebBrowser的子类,如初始可见性折叠时呈现问题中所述。 To work around a NullReferenceException in AbstractRenderHandler.OnPaint , you will need to ensure the visual tree is already created (by calling ApplyTemplate ).要解决AbstractRenderHandler.OnPaintNullReferenceException ,您需要确保已创建可视化树(通过调用ApplyTemplate )。

Example:例子:

internal sealed class CollapsableChromiumWebBrowser : ChromiumWebBrowser
{
    public CollapsableChromiumWebBrowser()
    {
        this.Loaded += this.CollapsableChromiumWebBrowser_Loaded;
    }

    private void CollapsableChromiumWebBrowser_Loaded(object sender, System.Windows.RoutedEventArgs e)
    {
        // Avoid loading CEF in designer
        if (DesignerProperties.GetIsInDesignMode(this))
        {
            return;
        }

        // Avoid NRE in AbstractRenderHandler.OnPaint
        ApplyTemplate();
        // https://github.com/cefsharp/CefSharp/issues/1412
        CreateOffscreenBrowser(new Size(400, 400));
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何截获CefSharp.WinForms.ChromiumWebBrowser的WndProc消息? - How can I intercept WndProc messages of CefSharp.WinForms.ChromiumWebBrowser? cefsharp ChromiumWebBrowser,我如何将 json object 返回到 javascript,而不是字符串 - cefsharp ChromiumWebBrowser,how can i return json object to javascript,not string 我可以让CefSharp WPF ChromiumWebBrowser接受IME输入吗? - Can I get the CefSharp WPF ChromiumWebBrowser to accept IME input? 如何获取chromiumwebbrowser html文档? - How to get chromiumwebbrowser html document? 当所有子级都折叠或隐藏时,如何在分层数据模板中隐藏扩展器? - How do I hide expander in Hierarchical Data Template when all children are collapsed or hidden? 当面板在SplitContainer中折叠时,如何保持SplitBar? - How to keep the SplitBar when panel collapsed in SplitContainer? 当我点击网格(它是图像的父级)时,如何使图像可见并折叠? - How to make image visible and collapsed when i tap on grid(It is parent of image)? 我怎么知道C#/ XAML中Collapsed元素的最终高度? - How can I know the eventual height of a Collapsed element in C#/XAML? 如何在ChromiumWebBrowser浏览器中为WPF添加cookie - How to add cookie in ChromiumWebBrowser browser for WPF 如何在 WPF 中在运行时创建 CefSharp ChromiumWebBrowser - How to create CefSharp ChromiumWebBrowser at runtime in WPF
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM