崩溃时如何使用ChromiumWebBrowser [英] How can I use a ChromiumWebBrowser when Collapsed

查看:668
本文介绍了崩溃时如何使用ChromiumWebBrowser的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个 ChromiumWebBrowser 控件,其 Visibility Collapsed .在将可见性设置为 Visible 之前,页面不会加载,并且许多呼叫失败:

System.Exception :浏览器尚未初始化. Load 只能在底层CEF浏览器初始化后才能调用( CefLifeSpanHandler :: OnAfterCreated ).

Visibility 被折叠时,如何加载页面?

解决方案

创建 ChromiumWebBrowser 的子类,如 解决方案

Create a subclass of ChromiumWebBrowser as described in Render problems when Initial Visibility Collapsed. To work around a NullReferenceException in AbstractRenderHandler.OnPaint, you will need to ensure the visual tree is already created (by calling 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));
    }
}

这篇关于崩溃时如何使用ChromiumWebBrowser的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆