silverlight.2.0:Silverlight 2 Beta2

  Beta2加了许许多多新功能(下面有更多细节)但下载大小仍只有4.6MB大在机器上安装所花时间少于10秒不用安装.NET框架或其他任何软件Software就可以工作所有功能在Mac和Windows机器上都能跨浏览器工作这些功能在Linux上将由Moonlight 2提供

  Silverlight 2 Beta2支持个go-live许可它允许你开始使用和部署Silverlight 2于商业应用中在Beta2和最终版间会有些API变动所以你应该预期你用Beta2编写应用在最终版出来时需要做些更新但我们认为这些变动将是直截了当和比较容易你现在可以开始计划和着手开发商业项目了

  你可以使用Silverlight的VS 2008工具和Expression Blend 2.5 6月份预览版来开发Silverlight Beta2应用你可以在这里下载这2个工具Silverlight的VS 2008工具在VS 2008和最近发布VS 2008 SP1 beta下都工作

  UI以及Control控件方面改进  Silverlight 2 Beta2 包括了在UI和Control控件方面大堆工作:

  更多内置Control控件

  Beta 1核心Silverlight安装只包含了几个Control控件最常用Control控件(包括Button, ListBox, Slider等)都是在另外集中发布你需要在应用中将这些集捆绑发布(其结果是增加了应用下载大小) 作为核心Silverlight 2下载部分Beta 2 现在将安装30多个最常用Control控件这意味着你现在可以开发使用这些核心Control控件Silverlight 2应用其下载大小可以只有3kb那么大- 使得Silverlight应用下载大小很小并使得应用启动极快

  除了包含在基本Silverlight 2安装中核心Control控件外这个星期我们还将发布在另外集中实现其他高层次Control控件你可以在应用中引用和包含它们这包括象DataGrid(其Beta2新特性见下面)日历(Beta2中有多日选择和不可选日期支持)以及TabPanel(Beta2中才出现新Control控件)这样Control控件

  我们最终预计会发布100多个SilverlightControl控件

  Control控件模板编辑支持

  WPF和Silverlight编程模型最强大个功能是其完全定制Control控件观感能力这允许开发人员和设计师以微妙和戏剧性方式对Control控件UI进行精雕细琢促成巨大灵活性我曾在这里SilverlightControl控件模板博客贴子里对这些概念讨论过

  这个星期Expression Blend 2.5 6月份预览版现在对Control控件模板编辑加了设计器支持将方便你快速地改变任何Control控件外观而不必再屈尊去修改XAML源码

  要看Control控件模板编辑实战例子在Expression Blend设计表面上拖放2个SliderControl控件:

Silverlight 2 Beta2

  我们也许会判定默认SliderControl控件模板滑块对我们应用来说太大太宽了要用Control控件模板编辑功能来改变它我们可以在设计器上右击其中个slider选择“编辑Control控件部件”上下文菜单项我们可以给我们Slider选择创建个空白Control控件模板(从头做起)也可以编辑内置Control控件模板拷贝(然后对的细调):

Silverlight 2 Beta2

  在我们选择编辑现有Control控件模板拷贝的后Blend会提示我们创建并命名个可重用样式资源我们将在其中定义我们Control控件模板命名完的后我们可以选择将样式保存在应用级(在App.xaml中)或在当前页面/用户Control控件中:

Silverlight 2 Beta2

  在点击OK的后我们会发现转到了SliderControl控件模板编辑模式的下我们可以改变细调添加/去除SliderControl控件模板中任何底层元素注意下面在模板编辑模式中我们可以看到和选择组成SliderControl控件模板任何底层元素(这些元素在下面“Objects”窗口中用红笔圈了出来)

  想把滑块做得窄我们可以选择Control控件模板中“HorizontalThumb”元素调整它宽度(在界面里或通过属性网格):

Silverlight 2 Beta2

  然后我们可以使用设计器顶部breadcrumb导航条回到我们页面看Control控件模板变动实施后效果:

Silverlight 2 Beta2

  注意目前只有个SliderControl控件使用了刚定义Control控件模板新样式资源

  要把同样样式资源用到另外个SilderControl控件上我们可以选择该Control控件右击然后使用“Apply Resource(应用资源)”上下文菜单把“ScottSlider”样式用到该Control控件上:

Silverlight 2 Beta2

  的后2个Slider将引用同个样式:

Silverlight 2 Beta2

  以后对“ScottSlider”样式做任何改变将会自动应用到这2个Control控件的上

  注意在Silverlight 2中发布所有Control控件都支持Control控件模板在Expression Blend中都支持上面那样编辑体验

  Visual State Manager (VSM-视觉状态管理器) 的支持

  Silverlight 和 WPF中Control控件模板支持对Control控件“look(外观)”以及Control控件“feel(感觉)”定制“feel”的谓我指是改变它交互响应性例如在按下时得到焦点时失去焦点时处于按下状态时处于不可用(disabled)状态时内中有东西被选中时它是如何反应经常地在用户象这样和Control控件做交互时你要执行动画效果

  我们在Silverlight 2 Beta2中引进个新东西是"Visual State Manager(视觉状态管理器)" (VSM)该功能将极大地方便你建造交互性Control控件模板VSM引入了你可在Control控件模板中利用2个基本概念:"视觉状态(Visual States)" 和 "状态迁移(State Transitions)"例如象按钮这样Control控件为自己定义了多个视觉状态: "Normal(正常)", "MouseOver(鼠标的下)", "Pressed(按下)", "Disabled(不可用)", "Focused(获取焦点)", "Unfocused(不具焦点)"在Blend中模板编辑模式下设计师现在可以轻松地编辑按钮在每个特定状态下外观以及设置迁移规则来控制从个状态迁移到另个状态时动画效果应该运行时间然后在运行时Silverlight会动态地运行合适动画故事板来把Control控件从个状态平滑地过渡到另个状态

  这个模型很棒地方是设计师不用编写代码不用手工创建动画故事板也不用理解Control控件对象模型就可以非常有效率这使得学习创建交互性Control控件模板曲线非常容易意味着现有美工可以轻松地参和Silverlight项目今年稍后我们还将往WPF中添加"Visual State Manager(视觉状态管理器)" (VSM)支持让你在Windows应用中使用同样思路方法以及在 WPF 和 Silverlight 项目间共享Control控件模板

  要看这个实战例子让我们往设计表面上加个ButtonControl控件:

Silverlight 2 Beta2

  然后我们可以右击按钮Control控件编辑它Control控件模板我们将不从现有默认Control控件模板开始(就象上面Slider例子样)让我们创建个空白Control控件模板从头做起:

Silverlight 2 Beta2

  Blend会提示我们给要创建样式(Style)资源取个名字我们将它取名为“ScottButton”点击OK这会把设计器置于按钮Control控件编辑模式下开始只有个空白Control控件模板:

Silverlight 2 Beta2

  上面有样需要注意东西是在Blend中有个新“States(状态)”窗口这个窗口会显示ButtonControl控件提供所有“Visual States(视觉状态)”在上面当前被选中是“Base(基底)”状态该状态允许我们定义我们按钮Control控件模板常用视觉树

  然后我们可以往我们基底状态中加些矢量元素来定义象下面这样定制按钮外观我们可以使用由Blend提供内置矢量绘制工具支持来设计这些图形或者使用Expression Design 或 Adobe Illustrator来建造矢量图形然后将其导入Blend中下面我们在我们Control控件模板中加了4个“Path”元素个是带圆角背景(其名为“background”)个带阴影(drop shadow)(其名为“shadow”)还有个是带40%蔽光性“shine”(在顶部加了些晕光)再有个定义了默认内部内容(在这个情形下是个房子图案):

Silverlight 2 Beta2

  注:我们也可以导入个图片但使用矢量元素会给予我们以后对按钮进行扩缩/转换在任意分辨率或尺度上保持清晰观感灵活性(特别是在Silverlight移动设备场景下屏幕分辨率大不相同或较小时尤其有用)还允许我们对美工设计中任何矢量元素可以轻易地做动画效果或改动

  完成设计上面基底状态的后我们可以按F5在浏览器中运行应用:

Silverlight 2 Beta2

  你可以在上面看到我们按钮Control控件现在拥有个比较好看外观尽管它有了个新外观但按钮依然象以前那样触发同样焦点点击和悬浮事件所以使用按钮开发人员在操作使用了我们新Control控件模板按钮时不用改动任何代码

  但我们新按钮Control控件模板个缺点是它并不是交互这意味着如果按钮获得/失去焦点或者鼠标悬浮其上时我得不到任何视觉反馈点击时我也得不到很好按下/弹起动画效果

  要将交互性加到我们按钮上我们将回到Blend中再次操作我们按钮Control控件模板的前我们把矢量图形元素加到了我们按钮“Base(基底)”状态中这允许我们定义所有视觉状态默认视觉外观我们现在将回去步定制个别按钮视觉状态

  例如为实现按钮mouse-over行为我们可以在“States”窗口中选择“MouseOver”状态然后细调按钮处于该状态时外观在下面我选了Control控件模板中“shine”矢量元素调整它在属性网格中Opacity属性使其在MouseOver状态下可见度更高注意Blend是如何在对象窗口中自动使用红点加亮“shine”元素然后在该元素下面列出了Opacity属性这可以便利很快地跟踪我们在Control控件模板中在“Base(基底)”状态和“MouseOver”状态间所做所有变动:

Silverlight 2 Beta2

  然后我们可以在“States”窗口中选择“Pressed”状态定制按钮处于按下状态时外观我们将改变“Base(基底)”状态2样东西个变动是使得“shine”元素可见(就象MouseOver状态样)第 2个变动是稍微偏移按钮Control控件内容同时保持影子元素不动这会给予按钮个很好看“depressed(按下)”外观和它基底视觉形成很好反差:

Silverlight 2 Beta2

  我们可以这样来实现偏移变动: 在设计器中选择backgroundcontent和shine元素然后在属性浏览器中对它们施加个偏移显示转换(off render transform):

Silverlight 2 Beta2

  现在在浏览器中再次运行我们应用我们会发现我们按钮在使用时有交互视觉反馈了下面是我们按钮“Normal(正常)”外观:

Silverlight 2 Beta2

  将鼠标悬浮于按钮的上会造成象下面这样发光效果:

Silverlight 2 Beta2

  点击按钮会导致它按下去隐藏影子(在松开鼠标按钮时它会弹回来):

Silverlight 2 Beta2

  注意我们不用编写任何代码或XAML来改变我们按钮观感视觉状态管理器功能会自动地为我们处理视觉状态间过渡

  在默认情形下在你从个视觉状态移动到另个视觉状态时Silverlight会动态地为你构建和运行过渡Storyboard(提供了2个状态间平滑过渡动画效果)你不需编写任何代码就可以让这切发生(注:如果你想你还是能降低层次(drop down)个定制Storyboard过渡但在大多数情形下你大概可以使用自动Storyboard过渡)

  Silverlight自动过渡功能中你可以利用个特性是定制视觉状态过渡发生所花时间你可以这么做点击视觉状态右边箭头设置个规则来控制当从个特定状态移到另个状态时过渡动画效果应该运行时间

  例如我们可以加如下规则来表示我们要它花0.2秒钟时间来从"Normal"过渡到"MouseOver"视觉状态:

Silverlight 2 Beta2

  然后我们可以象这样来配置这个规则在Normal->MouseOver间过渡时花0.2秒钟:

Silverlight 2 Beta2

  然后我们可以点击"MouseOver"状态设置个规则导致从MouseOver->Normal过渡花0.4秒钟:

Silverlight 2 Beta2

  现在当我们重新运行应用时对MouseOver场景我们将有个慢了动画过渡给我们应用添加了种稍微更加平滑和更为精致感觉我们不用编写行代码就可以促成这个效果 随Silverlight 2发布所有Control控件都有对象上面这样Control控件模板和视觉状态管理器的定制内置支持

  想进步了解新视觉状态管理器和Control控件模板编辑功能请看下 这里 和 这里教程, 以及这里, 这里 和 这里相关录像

  TextBox

  Beta2包括了对内置TextBox编辑Control控件些非常重大改进现在支持带换行文本卷动多行文字选择文档导航键以及从剪贴板拷贝/粘贴等

  Beta2现在还包含了对非西方IME Level 3输入支持(包括候选窗口选择):

Silverlight 2 Beta2

  输入支持

  Beta2添加了全屏模式下额外键盘支持(箭头键tab回车homeend页/下空格键)注:为避免密码欺骗场景目前尚不允许完整键盘输入支持

  Beta2还加了新APIs支持墨印和笔触输入

  UI自动化和可访问性(Accessibility)

  Beta2在Silverlight中添加了UI自动化框架支持UI自动化(简称为UIA)允许屏幕阅读器和其他辅助性工具识别组成你Silverlight 2应用组件并和的进行交互

  Beta2使用了UIA框架套SilverlightControl控件加了基于UIA行为在Silverlight 2最终版本中所有Control控件都将内置拥有基于UIA行为我们还将支持高对比度场景这些功能将允许你建造可访问兼容section 508应用这个UIA支持还将促成对应用自动化UI测试

  动画和图形系统

  Beta2加了对自定义依赖属性动画支持现在也支持对象动画支持(对结构体动画效果)Beta2还支持在代码中创建Storyboard来对部分显示树执行动画效果而不用将Storyboard加到显示树中(允许你将动画效果完全嵌在代码中)每帧动画回调支持将加在最终版中

  Beta2包含了个新视觉树静态辅助类提供了高级视觉树检视APIs它提供了象这样功能: 枚举某个元素子元素获取某个给定参考元素祖先/父元素这些APIs可以操作你传人任何UIElement对象

  DeepZoom

  Beta2现在支持基于XMLDeepZoom集合Manest文件Beta2还对DeepZoom加了可扩展MultiScaleTileSource支持(允许开发人员连接到和Deep Zoom高性能显示所用格式不相符现有金字塔结构图片集合上)

  WPF兼容性

  Silverlight Beta2包含了许多许多缺陷修补/改动以改进Silverlight和WPF间API兼容性(注:Silverlight最终版还将包含些额外兼容性工作)我们还将在今夏把在 Silverlight 2中引进些新APIs加到.NET 3.5 SP1中WPF中

  这个工作加上我们今年稍后将加到WPFVSM支持将促成浏览器和桌面应用间很好代码重用

  多媒体方面改进  Silverlight 2 Beta2 包含了些重大媒体方面工作:

  自适应流媒体传输(Adaptive Streaming)

  Beta2加了对“自适应流媒体传输(adaptive streaming)”支持它允许你以多种比特率编码媒体然后由Silverlight应用根据网络和CPU条件动态地在它们中间切换

  这将促成极其丰富终端用户媒体体验它造成了这样可能性由内容提供商同时提供低端和高端比特率版本录像而由Silverlight根据终端用户机器硬件和网络容量选择使用最佳版本假如在观看录像期间机器或网络条件改变 Silverlight 可以自动地切换到更合适比特率而不用任何缓存Cache或造成中断性故障

Tags:  silverlight2sdk silverlight2是什么 silverlight2 silverlight.2.0

延伸阅读

最新评论

发表评论