Silverlight开发工具的推出对开发者来说是一个比较有用的工具。在使用的过程中我们就可以感受到其中强大的功能。如果你的silverlight 需要渲染大量的UI对象,你或许得为Silverlight渲染速度而忧虑。#t#
如果你的UI对象还绑定一个复杂的数据实体,那么你会为silverlight的渲染速度而抓狂。这究竟这是silverlight 这个东东本身的缺陷还是我们无意触碰了潘多拉的魔盒?
我曾经用微软官方提供的一个silverlight树控件来绘制一个六百多个节点的指标树,为了让代码看上去很美,大量利用了silverlight 的一些特性,例如数据绑定,视觉状态,在xaml中进行数据转换,等等,但是很不幸,结果是树要同时展开一级节点的时候,需要停顿(UI失去响应)估计1s.由于客户需要一个全部展开的功能以方便他更好的浏览这些指标就像他观察股市波动一样去了解他的公司运营情况,结果等待的时间估计得让人抓狂。
为了提高Silverlight渲染速度,以下是微软官方给的一些建议:
谨慎对 Silverlight 插件使用透明背景
对 UIElement 的不透明度或转换进行动画处理时设置其 CacheMode
对文本进行动画处理时将 TextRenderingMode 设置为 RenderForAnimation
将使用不透明度对象和旋转或拉伸对象的层混合时缓存可视元素
避免使用无窗口模式
尽可能使用 Visibility 而不是 Opacity
在全屏模式下隐藏未使用的对象
不要将 Width 和 Height 与 MediaElement 对象一起使用
不要将 Width 和 Height 与 Path 对象一起使用
将占用 CPU 资源较多的任务分解为较小的任务
分解非常大的应用程序包
使用 Double.ToString(CultureInfo.InvariantCulture) 而不是 Double.ToString()
呈现大量图像时使用 Stretch="Fill"。
以上就是Silverlight渲染速度的提升方法介绍。