我需要在屏幕上渲染一些需要在时间轴后更改的Rich Text。在我的iOS版本中,我使用Web控件,在Android版本中,我使用TextSpan。
我阅读了一些建议,其中人们声称WebControl是在Windows Phone 7中呈现富文本的最佳方式,因此我有一个WebBrowser控件,我用HTML字符串填充。一切正常,直到我决定通过调用NavigateToString以编程方式更改内容。内容会发生变化,但两者之间会短暂闪烁到白色屏幕。
由于我的程序需要每秒多次更新WebBrowser控件的内容,因此屏幕将从所有刷新中全部变为白色。
我正在考虑将TextBlocks与内联和LineBreak一起使用的痛苦想法,但我必须手动转换我的HTML,所以我想尝试看看是否有人知道如何做到这一点。
要复制此问题,只需在页面上放置一个WebBrowser控件并使用NavigateToString更新内容以查看白色过渡闪烁
答案 0 :(得分:4)
我组合了OnNavigated
和javascript。我从Opacity = 0
开始,并将占位符页面加载到控件中。
<html>
<head>
<script type="text/javascript">function setContent(s) { document.body.innerHTML = s; } </script>
</head>
<body></body>
</html>
在OnNavigated中,我设置Opacity = 1
,然后使用InvokeScript
加载我的实际内容。
webBrowser.InvokeScript("setContent", myContents);
在我的情况下,我正在填写整个页面内容,但如果您只是更改页面的某些部分,则可以编写更具针对性的javascript。
答案 1 :(得分:1)
行为是正常的,因为WebBrowser控件基本上必须重新呈现整个页面,即使您更改了内容的一小部分。您最好的选择是使用RichTextBox - 这将涉及一些手动文本格式处理。
答案 2 :(得分:0)
我打算这样做:
WB_OnNavigating --> visibility = collapsed
WB_OnNavigated --> visibility = visible
或不透明度。但考虑到每秒多次刷新,这些可能会太慢。仍然值得一试看看你得到了什么。
XAML背景是否有白色或HTML内容的背景颜色可以与页面背景匹配?
仍在寻找更好的答案..