Silverlight2 RC 发布
从 ScottGu's Blog翻译 原作者:ScottGu
今天晚上我们推出了Silverlight2 RC.
在最终发布之前仍然有一些bug需要修复。尽管如此,我们还是要发布今天的版本,以让开发者们可以升级他们的Silverlight Beta2程序,让这些程序在最终版发布时能正常工作,同时也能让我们发现一些美中不足的问题(请访问www.silverlight.net报告这些问题)。
重要提示:今天我们只发布Silverlight开发者运行时版本(当然还有VS以及Blend工具支持),并没有发布最终用户版本。这是因为我们想让开发者们在用户版本更新前有时间更新网站程序。在本次的RC版本和Beta2版本之间有些改变,我们想确保在最终版本发布时,现在的网站能得到快速更新。总之,目前您只能用RC版本进行开发——直到最终版本发布时才能真实运行(最终版很快就会发布哦)
你可以从这里下载Silverlight RC以及相应的VS和Blend工具。请注意由于在Expression Blend在Blend2.0 SP1中支持Silverlight 2,你首先需要安装Blend2.0。如果没有安装Blend2.0,你可以从这里下载。
Beta2->RC API 的升级
今天的RC版本包含了很多的bug修复以及很大的性能提升。
今天的RC版本也有一些API方面的优化,以缩小Silverlight与完整版.NET Framework之间差别。尽管有许多改变,但多数的改变幅度都是很小的(比如参数顺序,方法/属性重命名,将类型转移到更合适的命名空间,等等)。你可以阅读这个blog或者下载这个文档来了解自Beta2以来的API变化。
我们更新了Silverlight中控件的样式,也修改了一些状态组或控件模板的名字。在从Beta2升级时,你应该首先暂时移除自定义样式模板,先保证程序能在RC下工作,然后再逐一加入样式定义,这样就能慢慢解决重命名/行为改变带来的问题。
如果你在从Beta2到RC转移过程中遇到困难,请在www.silverlight.net论坛里面发帖子(Silverlight团队成员会在那里提供帮助)。如果发帖后一两天还不能解决问题,请直接致信给我(我的mail:scottgu@microsoft.com)我可以帮您联系人解决问题。
(译者注: Scott 真够意思啊)
新控件
今天的RC版包含了许多Silverlight2的功能增加和优化,还有VS和Blend的相应工具。总之,你会发现很多方面的改进:控件,网络,数据缓存,界面布局,界面显示,媒体堆栈以及其他的模块和子系统。
接下来的几个月我们会发布很多新的Silverlight2控件(很快我会公布详细内容).今天的RC版本包含了几个新控件:ComboBox,ProgessBar以及PasswordBox,这几个控件已经直接加入了Silverlight核心运行时包(运行时包还是只有4.6M大小,花不了多少时间安装地)
(译者注:我考,太小气了,才发布3新控件,以后慢慢挤牙膏啊。另外,难道以后的控件不在核心运行时包里面?用到哪个,用户还得安装?)
运行起来这几个新控件看起来象下面这个样子:
Silverlight2的ComboBox支持标准DropDownList语法。你可以象上面那样定义子项,也可以使用数据绑定。例如,我们可以象下面那样定义一个Person类:
然后写下面的代码来绑定一个Person列表给ComboBox(通过ItemSource属性)
![](https://i-blog.csdnimg.cn/blog_migrate/48005bffec66bae9865f6b11a4790310.jpeg)
运行时我们的小程序会显示数据绑定后的Person名字(请注意我们设置了ComboBox的DisplayMemberPath属性给Person对象的Name属性)
![](https://i-blog.csdnimg.cn/blog_migrate/e8b4be213ac6719c03223ce196c03930.jpeg)
当我们从ComboBox中选择person时,可以象下面那样处理SeletionChanged事件响应:
![](https://i-blog.csdnimg.cn/blog_migrate/aa6c7803ec85e5b4f81613af996ff71d.jpeg)
请注意我们是怎么从ComboBox的SelectedItem属性获取被选择的Person对象的。
我们可以通过调用MessageBox.Show()方法(RC版本新引进的哦)来显示一个模式对话框,以显示被选择person的更多详细信息。
新控件皮肤
Silverlight2的最终版会有更多漂亮的预定义的控件模板皮肤,比Beta1以及Beta2都要多哦。我们引入缺省空间模板的目标是让控件看起来更专业、更有吸引力,以便在多数程序中很好的应用(你不需要自定义样式模板啦),这些控件模板也很容易在Expression Blend中得到优化修改。
今天的RC版本有和许多最终版一样的皮肤(在控件的聚焦颜色方面以及控件模板都有一些改进)。下面是RC版本中DataGrid,RadioButton,CheckBox以及DatePicker控件的缺省样式。
![](https://i-blog.csdnimg.cn/blog_migrate/8b487e0c49d63b2a82cf35f5cd7da2b2.jpeg)
请注意上面那个DatePicker控件允许用户输入一个日期(使用masked edit来保证输入有效),用户也可以点击输入框右边的日历图标在弹出得日历控件中选择日期。
![](https://i-blog.csdnimg.cn/blog_migrate/17408421693bfa9b8e649dc652de8d41.jpeg)
Silverlight以及WPF最有力的特点是让设计人员和开发人员完全定制控件的外观和行为。不只是简单的颜色、字体等样式可以定制,你也可以不写任何代码来完全改变控件的界面外观以及定制它们的行为(比如:添加动画效果)。
在Expression Blend中,右击一个Silverlight控件选择“Edit Control Parts”子菜单来打开和编辑控件模板:
当控件模板处于编辑模式,你可以修改控件的任何子元素(例如:CheckBox的内部控件),也可以定制控件状态(请注意下面红框中的states面板)。这东西允许设计人员定制控件在不同状态下的外观(例如:checked,unchecked,mouseover,等等)。Silverlight会自动控制用户动作引起的控件状态转换。
你可以从我以前的日志中了解Silverlight Visual State Model的工作原理。
以前的Silverlight中图形的显示使用亚像素定位(sub-pixel locations)的办法——这导致线条或者形状显示时有时候会模糊。RC版本使用了一种叫“布局估算”(layout rounding)新方法,这样显示的线条更清晰,并减少了显示的虚影。这个功能默认是被打开的,以使程序看起来更漂亮。
总结
最终版的Silverlight很快要发布了。这个工程在短时间内发展这么快,真令人惊讶啊。
(译者注:王婆卖瓜?)
如果你已经有Beta2的程序,请赶紧为最终版做准备——一旦我们发布最终版Silverlight2,用户现有的beta版本将被自动升级到最终版。用RC版本测试你的程序以保证在最终版发布时能正常运行。
如果在RC版本中碰到什么问题,请在http://www.silverlight.net上发帖子吧。
希望这篇文档对您有帮助。Scott
(译者注:第一次翻译 Scott 的文章。翻译东西可不是闹着玩的,不容易啊)