【发布时间】:2022-10-20 09:13:52
【问题描述】:
我正在为我的 WPF 应用程序创建一个浏览器窗口。在可见性更改期间,我正在加载 URL,但是当我更改 URL 内容并加载相同的 URL 时,它首先显示以前的内容,然后在闪烁后显示更新的数据。
void OnWindowVisibleChanged(object sender, DependencyPropertyChangedEventArgs e)
{
if (!IsBrowserInitialized) return;
if (window.Visibility == Visibility.Visible)
{
Dispatcher.BeginInvoke(new Action(() =>
{
LoadNewUrl();
window.Activate();
}));
}
else
{
Dispatcher.BeginInvoke(new Action(() =>
{
ChromeBrowser.LoadHtml("<html><body><h1></h1></body></html>");
}));
}
}
假设 URL 包含“ABCD”作为数据。第一次显示正确的内容。更新后数据变为“ABCDEF”。现在在Load() 上显示初始内容,然后显示更新的内容。
为了避免这个问题,我还需要做些什么吗?
【问题讨论】:
-
你用的是什么版本?
-
我不明白这个问题。您显示浏览器窗口,然后加载新内容,对吗?
-
@amaitland 版本是r104.4.24+gdf482f6+chromium-104.0.5112.102.大部分可在较慢的机器上重现。我使用 cpuiller3 来减慢我的开发机器的速度以重现问题。
-
@273K 显示窗口,我正在加载带有 URL 的内容。在下一次加载期间,它首先显示旧内容,然后闪烁一些,然后才是实际内容。有时窗口只是空白。
-
请显示更多代码,目前还不清楚问题是什么。加载新内容是一个异步操作。如果您在
Load调用中显示浏览器窗口,您肯定会首先看到旧内容。
标签: wpf cefsharp chromium-embedded