Как удалить мерцание WebBrowser?
Я использую Контроль WebBrowser для моего приложения чата. Каждый раз, когда он добавляет сообщение пользователя - он обновляет 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 ответа
Вместо того, чтобы каждый раз перезагружать новый документ, установите InnerHTML
из существующих Document.Body
,
Добавьте следующие 2 строки в свой <Head>
тег
<meta http-equiv="Page-Enter" content="blendTrans(Duration=0)">
<meta http-equiv="Page-Exit" content="blendTrans(Duration=0)">
это работает правильно.
Я добавил:
<meta http-equiv='Page-Exit' content='filter: expression(document.execCommand("BackgroundImageCache", false, true))'>
на мой HTML-код, и он не мигает. Я не знаю, как это работает (я не знаю html), просто потратил некоторое время на поиски решения.
И это странно, потому что я могу заменить:expression(document.execCommand("BackgroundImageCache", false, true))
на что-нибудь еще, и это все еще работает.