如何删除WebBrowser闪烁?

时间:2011-07-14 13:08:41

标签: c# html background browser flicker

我正在为我的聊天应用程序使用WebBrowser Control。每次添加用户的消息时 - 它都会使用新内容刷新WebBrowser。而且效果很好。 但是我在html代码中添加了一个背景后,每次刷新时都会闪烁。 这是我的Navigate()方法:

public void Navigate(string url)
{
    string text = File.ReadAllText(url);
    if (bg.Length > 0)
        webBrowser1.DocumentText = text.Replace("%bg%", "background=\"" + bg + "\"");
    else
        webBrowser1.DocumentText = text;
}

这是我的html文件头:

addText("<html>\r\n<head>\r\n<meta charset=utf-8>\r\n</head>\r\n<body %bg% bgproperties=\"fixed\" onload=\"window.scrollTo(0,2147483647);\">\r\n<span style=\"line-height: 20px\" style=\"font-family: Arial; font-size: 14px\">\r\n<font color=black>", NewLine.No);

每次用户添加消息时,我的程序都会将其添加到html文件的末尾并执行Navigate()方法。

你有什么想法去除闪烁吗?

3 个答案:

答案 0 :(得分:4)

不是每次都重新加载新文档,而是设置现有InnerHTML的{​​{1}}。

答案 1 :(得分:2)

<Head>代码

中添加以下两行
<meta http-equiv="Page-Enter" content="blendTrans(Duration=0)">
<meta http-equiv="Page-Exit" content="blendTrans(Duration=0)">

它运作正常。

答案 2 :(得分:0)

我补充说:

<meta http-equiv='Page-Exit' content='filter: expression(document.execCommand("BackgroundImageCache", false, true))'>

到我的HTML代码,它没有闪烁。我不知道它是如何工作的(我不知道html),只是花了一些时间在谷歌搜索解决方案。

这很奇怪,因为我可以替换: expression(document.execCommand("BackgroundImageCache", false, true)) 其他任何东西,它仍然有效。