搜索视觉搜索:
搜索  
icon 当前位置: 首页 » 文章

SilverLight开发基础答疑

[来 源] 蓝色理想[作 者] [发表时间] 2007/08/03 15:03:16

1. WPF/E是否可以支持嵌入式字体?

问题描述:在设计HTML网页的时候,我们会碰到很多类似的问题。一个网页中的字体在设计期非常好看,但当我们发布之后,却发现用户体验惨不忍睹,这其中最大的原因就是字体的不同。比如设计师使用Windows Vista来进行设计,使用了微软雅黑字体。而此种字体在早期Windows版本以及其它操作系统当中并不存在,浏览器会按照自己的方式来使用替代字体(或者CSS中指定的替代字体),从而导致用户体验非常差。如何解决这种问题呢?

解答:我们可以使用FontUri这种方式来嵌入字体,从而解决此种问题,根据当前版本的SDK文档中,我们可以看到,FontUri属性可以应用于Glyphs标签。

示例:  把字体从你的Windows/Fonts目录中拷出(或者从其它地方获得),拷贝到您的WPF/E相应的目录当中,然后在您的XAML语句中按照以下方式进行撰写:

  <Canvas x:Name="GlyphDisplayCanvas" Canvas.Left="0" Canvas.Top="0" >

    <Glyphs x:Name="GlyphDisplay" Fill="Black" FontUri="./simhei.ttf" FontRenderingEmSize="48" UnicodeString="Hello, WPF/E?" />

</Canvas>

2. WPF/E如何支持中文显示?

问题描述:在前段时间我的文章留言中,有一位朋友询问如何支持中文。可能很多朋友已经注意到了,在TextBlock或者其它元素当中,如果输入中文,那么在最终显示效果当中,您可能会注意到,这些汉字全部显示为了一个规矩的方框,而不是我们想像中的汉字,那么如何解决此问题呢?

解答:的确在当前版本的WPF/E应用程序当中,很多元素其实不支持中文或者更准确地说,是双字节语言(比如韩文以及日文),但解决也比较简单,查看前面的问题解答,您或者已经得到了解答,即使用UnicodeString方式对其进行设置。当然,如果您查看SDK文档也会发现,这个UnicodeString也只能应用于Glyphs。

示例:同上面问题的解答一样,只需要把应用程序代码中的UnicodeString替换为中文即可,如下:

<Canvas x:Name="GlyphDisplayCanvas" Canvas.Left="0" Canvas.Top="0" >

    <Glyphs x:Name="GlyphDisplay" Fill="Black" FontUri="./simhei.ttf" FontRenderingEmSize="48" UnicodeString="生日快乐,开心就好" />

</Canvas>

3. 使用SilverLight时,为何在IE中显示正常,但在FireFox中却没有正确内容呈现?

问题描述:
我们知道SilverLight是一个跨浏览器的解决方案,在第一版本中将支持IE、FireFox以及Safari等浏览器。但在开发完成后,却发现某些效果在IE中是可以正常显示的,但在FireFox或者其它浏览器却没有正确显示。使得开发人员对于FireFox的跨平台性产生了怀疑。

解答:请查看您的代码中是否不正确的使用了某些IE专用的组件,如Microsoft.XmlDom来分析XML文档等,因为该组件仅仅支持IE,而在其它浏览器中并不正确支持。所以您需要先判断客户端使用的是何种浏览器,再采用不同的解决方案来处理相应的实际问题。

4. SilverLight相对于其它公司的类似解决方案有何种优势?

问题描述:在给很多公司进行培训时,经常会有人问到类似的问题。由于具有一定的相似性,所以会让很多初次接触SilverLight的人员下意识的进行比较。

解答:

1、易于扩展:可以使用任何服务器技术端创建SilverLight表现,我们知道其它公司的产品均是表现为二进制代码,生成需要使用特殊的工具,并且其服务器端生成工具价格不菲。而SilverLight的服务器端只是一个XML文件,您可以使用ASP、ASP.NET、PHP或者JSP等现有的服务器端语言操作文本文件的方式进行动态组装;

2、搜索引擎友好(SEO):对于网站站长来说,是否对搜索引擎友好,对于站长的成败至关重要。很多网站一半以上的流量来自于各种搜索引擎的贡献。微软的SilveLight的内容均是基于文本文件(XML或者JS文件),资源文件则采用了原始表现形式,而没有提供嵌入,搜索引擎稍加变通,即可以正确的进行索引(以后SilverLight会采用标准ZIP格式进行压缩,但搜索引擎仍然可以正确索引)。其它公司的解决方案,大部分采用了二进制单文件方式,除了使用元数据方式建立索引,很难进行SEO;

3、良好的开发工具以及设计工具支持:微软面向不同角色的人员提供了更加称心如意的工具,对于开发人员,可以继续使用其熟悉的Visual Studio工具来创建相应的业务逻辑;对于设计人员,可以使用Microsoft Expression系列来进行创建(Expression Blend下月CTP将会支持SilverLight创建,现有版本的Expression Design已经可以导出符合SilverLight规格的设计文件);

4、与WPF先天的关系:我们知道SilverLight原名为WPF/E,其本身是WPF的一个子集,采用了不同的命名空间。对于WPF已经非常熟悉的人员,可以以极低的学习成本了解SilverLight;而对于SilverLight已经非常了解的人员,可以很容易的学习使用WPF创建流行的Vista般用户体验的应用程序;

编辑
关于carrie:
勤勤恳恳工作,踏踏实实干活。
负责内容: 时尚设计 创意生活 产品设计
Mail carrieqjl@hotmail.com sitehttp://user.qzone.qq.com/270912054

热点评论文章