距离Silverlight5(beta)华丽丽的亮相已经有一段日子了,园子里也有同道陆续放出了beta版中新玩意的体验和介绍,比如乱世经典的这些文章,估计大家早也已经对beta版sl5带来的新特性了然于胸了。
而这篇文章的目的则是要向大家介绍一下那些没有赶上beta版末班车却又让我们“魂牵梦绕”的sl5新特性。废话少说,且听我一一道来。
- DataContextChanged事件
顾名思义,当DataContext发生变化时将会触发该事件。现在sl的fans不用再羡慕wpf的这个事件了吧。不过话说回来,其实sl的FrameworkElement本来是提供了这个事件的,不过因为被标记为internal而一直无法使用。
来看一下示例代码:
this.DataContextChanged += View_DataContextChanged;
void View_DataContextChanged(object sender,
DependencyPropertyChangedEventArgs e) { INotifyPropertyChanged customer; customer = e.OldValue as INotifyPropertyChanged; if (customer != null) customer.PropertyChanged -= customer_PropertyChanged; customer = e.NewValue as INotifyPropertyChanged; if (customer != null) customer.PropertyChanged += customer_PropertyChanged; }
DependencyPrpertyChangedEventArges有三个属性NewValue、OldValue及Property。利用这个事件我们更好处理引用提高内存使用效率。
- UpdateSourceTrigger新增了对PropertyChanged的支持
这个很有意义啊,人家WPF早就有这玩意而且在TextBox控件上是默认的UpdateSourceTrigger,而之前的sl就像个后娘养的…现在好了,做双向绑定的时候可以不再郁闷了。
- 增强了文字清晰度
在之前的版本中,文字的清晰度一直备受怨念。不过微软说sl5中会提高文本与像素图像捕捉并为小型的阅读设备提供更好的体验。官方ppt中提供了下面这几张老图(当年介绍wpf4时候用过的),这是否代表我们暂且可以认为sl5最起码会做到wpf4的程度?
- 矢量打印
如果让诸位用一个流行的词形容当前sl的打印功能,你们会想到什么?没错,就是“坑爹”。我们都知道,当前sl打印是基于bitmap(位图)的,而位图打印的两大缺陷则分别为占地面积大和缩放会照成很大损失。让我们看一些位图和矢量图的性能、容量、缩放清晰度对比
好吧,我想你懂的,这就是为什么矢量打印在sl5的wishlist中占据那么高的位置的原因。
- Trick Play
这个东西我不大清楚,还望对媒体播放及TrickPlay有所了解的兄弟解惑。
暂时就这些吧,Silverlight5正式版将在2011年下半年登场,不过上文中提到的这些新特性会提前出现在Silverlight5的RC版中也是说不定的事哦~