1.如何添加和使用自定义字体
美工设计了一个UI,但是其中有些字体并不在Silverlight支持的字体的List中
添加字体到和HelloWorldDemo.xap文件同一个目录下或者在工程中添加字体文件,右键选择工程,添加已经存在的项,选中新添加的字体文件并设置其属性Build Action为Resource,这样我们就可以在我们的工程中使用添加的字体了。例如:
双击刚刚添加的ARLRDBD.TTF字体文件,可以看到咱们刚刚添加的字体文件中含有的字体是Arial Rounded MT Bold
打开HelloWorld.xmal文件,并设置TextBlock的字体如下
<TextBlock Text="Hello" FontSize="30" Foreground="White" FontFamily="./ARLRDBD.TTF#Arial Rounded MT Bold" />
按CTRL+F5启动网站,你将看到我们添加的字体已经用上了。
2.Deep Zoom Composer 是什么
Deep Zoom Composer是微软的一个技术预览,使用这个工具可以创建用了Deep Zoom特性来展示图片
使用这个工具,我们将创建在网络上以一种很平滑的方式来展示图片,特别是高像素的图片的应用程序
3.自定义鼠标提示信息
在Silverlight中可以通过两种方式来实现 :1.ToolTipService.ToolTip 2.Popup控件
4.一些重要控件的功能简述
RepeatButton是一个可以响应鼠标连续点击的特殊Button
ToggleButton是三态按钮(就是有Indeterminate,Checked,Unchecked三种点击状态),
利用这个控件就可以很方便的实现以前需要写不少JavaScript代码实现的状态翻转的功能。
Slider控件是一个非常重要的控件,特别是对网络多媒体播放器来说是必不可少的
有时候为需要放太多的内容,但是一个页面的空间又有限,TabControl可以为您排忧解难
Silverlight为咱们的排兵布阵提供了三个神兵利器Grid,StackPanel和Canvas,
最后再介绍下Border控件,这个控件在布局的时候经常会用到特别是它的圆角功能,屡试不爽。
5.WCF通信
Silverlight的WCF Binding只支持 binding="basicHttpBinding"
通过IIS发布本应用程序你必须注册WCF组件(不然无法识别.svc文件,你的WCF通信将瘫痪)
这样你的Silverlight就可以在IIS上面正常运行了,当然要让IIS识别.xap以及.xaml还需要添加两个MIME Types
6.Silverlight的单元测试
微软给我们提供了Silverlight单元测试的支持,下载Silverlight Unit Test VS模板以及Silverlight Unit Test Framework Binaries库。
7.Live Search网页搜索
Silverlight可以利用微软的Live Search Service项目的Live Search API来进行网页,图片,资讯等的搜索。
8.新特性
支持高质量的视频和音频
在线按需的720p+的流媒体播放支持:提供了一个叫做IIS Media Pack的IIS插件。它可以让Silverlight监测用户的带宽和CPU
状态,然后让IIS自适应的传递合适码率的视频
更多的多媒体格式的支持:除了支持原来VC-1/WMA,Silverlight 3增加了对基于MPEG-4格式的H.264/AAC音频格式的支持。
而且Silverlight 3将支持第三方的解码器。视频和音频可以在运行时外解码,然后在Silverlight 3中呈现出来
全面支持3D:大家现在不需要第三方的开发包来实现Silverlight的3D效果了。
像素着色效果:内在支持模糊化和投影效果
全新的位图API:这个全新的API可能让我们更加方便的操作位图的每个像素。这也就为开发网络图片编辑器带来可能
支持GPU加速
动画效果:支持多种动画效果,比如Spring,Bounce,Elastic等等。
内置的导航机制,支持深度链接
支持SEO:这样以后用Silverlight做网络应用,就不用担心由于SEO的问题,导致搜索引擎搜索不到降低网站的知名度了
增强的数据绑定支持:支持类似WPF的Element-To-Element绑定
DataForm控件:支持显示,编辑更新数据,并提供验证和分页功能(分页功能是由DataPager来实现的)
提供离线功能:支持在离线的状态下桌面上安装并运行网络应用程序。
9.WCF
配置WCF时候的技巧:
对web.config点击右键->打开方式->添加->程序名右边的...按扭->C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\ (如果你安装开发平台时使用了默认路径,将会在这个路径中找到)->选中SvcConfigEditor.exe ->打开->确定。
跨域文件制作:
本于安全原因,silverlight如果要访问不同域名wcf服务必须要在wcf服务的宿主建立一个跨域文件,否则会提示错误.
(注意:如果你的wcf服务的宿主是IIS,那么这个文件必须在IIS的根目录,而不是这个wcf服务的根目录)
10.crossdomain.xml和clientaccesspolicy.xml的区别
为了sliverlight能够跨域访问,通常需要添加跨域策略文件。
但是在可以查到的很多资料中,对这两个文件的功用说的都不是很清楚,始终有几个疑惑希望能有人解答:
1、这两个文件真的是可以任选其一吗?它们有什么共同点和区别?
2、这两个文件分别需要被放在服务端还是客户端?
3、不管后台服务部署在IIS还是其它环境中,这两个文件都可以使用吗?
可以根据需要放在服务端
都可以使用,可以根据需要选择,很多网站都设置了crossdomain.xml 不一定非要在IIS
比如 http://www.yahoo.com/crossdomain.xml
补充一下在服务端放置跨域访问文件的经验。
SilverLight要实现跨域访问,必须在服务端被访问域的直接域名下,配置 clientaccesspolicy.xml(或 crossdomain.xml)文件,
即可以访问 http://%7bdomainname%7d/clientaccesspolicy.xml
具体来说,如果后台服务部署在IIS中,默认是放在“inetpub/wwwroot”目录下;如果后台服务是部署在Tomcat中,默认是放在“tomcat\webapps\ROOT”目录下。
这两个文件并不都需要放在域根下,但我更喜欢用clientaccesspolicy,因为他可以用来设置Socket.
它们的区别说明在B2的文档中:
Silverlight supports two types of security policy files:
Flash policy file - the existing crossdomain.xml policy file used by Adobe Flash. This policy file can only be used by the WebClient and HTTP classes in the
System.Net namespace. A Flash policy file must allow access to all domains to be used by the Silverlight 2 runtime.
Silverlight policy file - the Silverlight policy file that can be used by the WebClient and HTTP classes in the System.Net namespace and also by the sockets
classes in the System.Net.Sockets namespace. This policy file has a different format than the Flash policy file.
All in all, Silverlight policy can be used by all kinds of Connection between Client and Server.
Refer to your question, if you only put one of them onto the root, cross-domain-access is also allowed, but for crossdomain.xml CrossDomain for Sockets doesn't allow.