c# - 折叠时如何使用 ChromiumWebBrowser
问题描述
我有一个ChromiumWebBrowser
控制Visibility
权Collapsed
。在可见性设置为 之前Visible
,页面不会加载,并且许多调用失败并显示:
System.Exception
: 浏览器尚未初始化。Load
只能在底层 CEF 浏览器初始化后调用 (CefLifeSpanHandler::OnAfterCreated
)。
Visibility
是时如何加载页面Collapsed
?
解决方案
创建一个子类,ChromiumWebBrowser
如Initial Visibility Collapsed 时的渲染问题中所述。要解决NullReferenceException
in AbstractRenderHandler.OnPaint
,您需要确保已经创建了可视化树(通过调用ApplyTemplate
)。
例子:
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));
}
}
推荐阅读
- python - 安装 Appium 的一些问题
- css - 如何使用 css 标记 GridPane 的选定单元格?
- css - 使用 CSS 在 iframe 中创建透明阴影
- kubernetes - kubernetes:尽管使用率低,但集群自动缩放器没有缩减节点
- angular - 错误:支持使用带有反应式表单指令的 ngModel 输入属性和 ngModelChange 事件已被弃用
- python - 从 JSON 变量中提取值
- javascript - 初始化将在 React 中接收数字的空状态
- angular - NgFor 仅支持绑定到 Iterables,例如 Arrays angular8
- postgresql - Postgres 在哪里被忽略?
- xcode - Xcode 11 中的差异在哪里?