崩溃时如何使用ChromiumWebBrowser [英] How can I use a ChromiumWebBrowser when Collapsed
本文介绍了崩溃时如何使用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屋!
查看全文