Я разрабатываю приложение Windows Phone 8. В моем приложении я использую элемент управления WebBrowser для отображения строки в формате HTML. Мне нужно показать html-форматированный текст с черным фоном. Я делаю это успешно, но проблема в том, что
когда в WebBrowser отображается строка с форматированием html, она сначала показывает белый цвет, а затем показывает фактическую строку с черным фоном. Он выглядит как эффект flick, а затем показывает мою строку в формате html.
Код, который я использую:
string html = ("<!DOCTYPE html5><html><head><meta name=\"viewport\" content=\"user-scalable=no background-color:black\" />" + sctipy + "</head><body style= \"background:#000; color:#fff;\"><div id=\"content\">" + myHtmlFormattedString + "</div></body>" + "</html>");
webbrowser.NavigateToString(html);
Есть ли другое решение, такое как изменение фона по умолчанию для элемента управления WebBrowser, отличного от белого
Проблема в том, что вы не можете изменить фон самого WebBrowserControl.
У меня была та же проблема... Я решил это, сделав LoadCompleted
WebBrowserControl, и когда LoadCompleted
из попаданий WebBrowserControl, сделайте его видимым...
XAML:
<phone:WebBrowser x:Name="browser" IsScriptEnabled="True" Visibility="Collapsed" LoadCompleted="WebBrowser_LoadCompleted" />
И на обороте:
public void WebBrowser_LoadCompleted(object sender, EventArgs e);
{
browser.Visibility = Visibility.Visible;
}
Это дает вам также преимущество, чтобы показать ProgressBar/ProgressRing при загрузке (огромной) страницы и скрыть до тех пор, пока не будет запущен WebBrowser_LoadCompleted
. Когда вы загружаете небольшую страницу, вы не увидите разницы в видимой/свернутой части, и ваша мерцающая проблема исчезнет...