Silverlight 5 深入理解

Wesley13
• 阅读 589

Silverlight 5 深入理解

Silverlight 5 在 Silverlight 4基础上做了一些补充和增强

  • 丰富的媒体表现能力
  • 增强的图形展现能力
  • 构造下一代商业应用程序
  • 信任模式的增强
  • 性能提升
  • 工具完善

其中,大多数增强来自于在线调查

lhttp://dotnet.uservoice.com/forums/4325-silverlight-feature-suggestions

Silverlight 5 深入理解

Silverlight 5 功能介绍

工具完善

  • 调试XAML中的数据绑定
  • Visual Studio 性能分析工具
  • 支持 Visual Studio Team Test

构造下一代商业应用程序

  • 数据绑定增强
  • 文本呈现增强
  • 鼠标双击/多击支持
  • PivotViewer 控件
  • Postscript 矢量打印支持

媒体增强

  • 遥控器和媒体命令支持
  • 视频回放增强
  • 实时音效

工作在信任模式下

  • 多窗口支持
  • 无限制的文件访问
  • 全屏模式下的键盘支持
  • COM 调用支持
  • P/Invoke 访问非托管代码

图形增强

  • 3D 图形接口

性能提升

  • 减少网络延迟
  • 提高 XAML 解析速度
  • 64位支持

还有很多……

调试XAML中的数据绑定

以前,如果 Binding 不能正常工作了,你必须检查 Visual Studio 的输出窗口,查看失败信息。然后创建一个 ValueConverter 并在 Binding 中使用,检查传入传出的数值。结果发现Path 写错了?一点一点试吧~~

现在,在 XAML 中为 Binding 设一个断点,直接检查本地窗口即可。

Visual Studio性能分析工具

Silverlight 5 提供了包括CPU、内存、线程竞争等等丰富的性能分析工具。

支持Visual Studio Team Test

如下图所示:

Silverlight 5 深入理解

支持隐式的 DataTemplate

隐式的 DataTemplate薄板就是为程序中用到的某种数据写一个统一的模板。在ItemsControl中,不同的数据可以使用不同的模板。

数据绑定增强

SL5中提供了ICustomTypeProvider,它能为JSON等数据源制定数据类型。Binding.RelativeSource 支持 Ancestor,而Binding.UpdateSourceTrigger 支持PropertyChanged。Style 的 Setter 支持 Binding。此外,SL5还提供 DataContextChanged 事件以及支持自定义 MarkupExtension的能力。

RichTextBlock控件

RichTextBlock控件适合用来呈现大段的文本。可以进行选择并复制并对文本进行自由的布局,例如排布成多列显示或者做出文本环绕的效果等。

文本呈现增强

SL5支持调整字符间距,支持像素对齐以及OpenType字体,以此来改善用户的阅读体验。

鼠标双击/多击支持

SL5增加ClickCount属性,使用它能够判断鼠标点击次数。在应用程序中支持鼠标三击。需要注意的是,鼠标三击是一个渐进的行为,而且会经过鼠标单击和双击事件。因此在事件顺序上不能有冲突。一个合适的例子是双击选中一段文本,三击选中全部文本。

PivotViewer 控件

从SL5开始,PivotViewer 正式加入 Silverlight SDK。它使用了DeepZoom技术展示数据。

示例:http://www.microsoft.com/silverlight/case-studies/

Silverlight 5 深入理解

Postscript 矢量打印

Postscript 是打印机可以识别的页面描述语言,但是它需要打印机支持!以前的打印方法是位图打印,速度慢,内存消耗大,而且打印机的分辨率越高,性能越差。因此只适合打印几页内容的文档。

而Postscript 矢量打印的出现则解决了这一问题。打印机分辨率对性能没有影响,可以打印上百页的文档了。

遥控器和媒体命令支持

SL5支持多媒体控制的硬件设备,例如:XBOX 360 遥控器、Media Center 遥控器\笔记本电脑的多媒体按键等等。

其中UIElement.MediaCommand 事件可以处理播放,暂停,停止、前进,后退、音量+/-,频道+/-等等操作。

Silverlight 5 深入理解

视频回放增强

SL5支持 H.264 视频回放的硬件解码。支持TrickPlay,包括支持快进/快退以及在 2 倍快进时,利用音频修复技术,还原真实的语调。它还增强了电源控制,能够处理播放视频时禁止屏幕保护程序以及暂停视频时允许计算机进入睡眠状态等。此外,SL5还提供了DRM 增强功能。

实时音效

最常见的应用程序和游戏中都需要实时音效。在Silverlight 4 时代,为了减少声音的延迟,我们做了大量工作,需要很多技巧。但是现在,Silverlight 5 提供了 XNA 中的 SoundEffect模块,它可以满足用户对实时音效的要求。不过它也有限制,比如声音文件必须是PCM编码(一般为 WAV 文件)。再比如,为了最好的效果,对声音文件的比特率有限制。

Silverlight 5 的信任模式

SL5的信任模式包括:本地应用的信任模式、浏览器应用的信任模式。同时,信任的应用程序可以通过组策略指定。

多窗口支持

在 Silverlight 4 的 OOB 程序中,我们只有一个窗口。虽然可以用 Popup 和 ChildWindow 模拟,但是他们不是真正的窗口,不能移动到主窗口外面。

在 Silverlight 5 的 OOB 程序中,我们可以创建多个操作系统的窗口,可以自定义窗口的形状,而且还支持双屏幕。

其他工作在信任模式下的好处

  • 无限制的文件访问:以前只能访问“我的文档”,现在可以访问所有文件。
  • 全屏模式下的键盘支持:在浏览器中全屏运行,可以接到所有键盘消息
  • COM 调用支持:可以访问浏览器中的其他 COM 插件
  • P/Invoke 访问非托管代码:在本地应用中,可以调用 Windows API

3D图形接口

Silverlight 4 的 3D其实是Projection:3D 投影变换。

Silverlight 5 的 3D是基于 XNA 的 3D 引擎,支持贴图、纹理、光照,支持顶点着色器和像素着色器的“真3D”。同时可支持3D 模型导入功能。

“真3D” 能做什么呢?看看下面吧~

Silverlight 5 深入理解

资源

本文出自 “葡萄城控件博客” 博客,请务必保留此出处http://powertoolsteam.blog.51cto.com/2369428/697302

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
P2P技术揭秘.P2P网络技术原理与典型系统开发
Modular.Java(2009.06)\.Craig.Walls.文字版.pdf:http://www.t00y.com/file/59501950(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.t00y.com%2Ffile%2F59501950)\More.E
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Easter79 Easter79
3年前
Swift项目兼容Objective
!456.jpg(http://static.oschina.net/uploads/img/201509/13172704_1KcG.jpg"1433497731426906.jpg")本文是投稿文章,作者:一叶(博客(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2F00red
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这