使用IEAK创建自属品牌浏览器

可能这段时间,很多朋友已经关注了IE8的相关发布活动,在3月20日,微软全球发布了包括简体中文版本在内的超过25个语言的IE8。在短短八个小时内,其下载量超过了一千二百万,取得了很好的市场响应。

除了微软自己的发布活动以外,我们还与新浪在3月23日共同发布了新浪定制版IE8,并且在未来,还会有其它的互联网网站发布其定制版IE8。其实这种定制技术,在难度上并不大,因为微软提供了IEAK供所有用户进行自有品牌的创建,其实定制过程非常简单,大体上类似于一个向导过程,将您所有的开发以及希望的属性进行一个统一的打包而已。如果贵公司感兴趣,只需要下载本文后,我个人撰写的一个使用说明文档即可以完成相关的创建活动。不止可以把加速器、网页快讯、可视化搜索、工具栏、ActiveX控件加入到IE8包当中,还可以定义IE8的默认主页、默认搜索引擎、收藏夹等等内容。

其实除了面向公网发布以外,在企业内部也完全可以使用该工具,再配合IE8的组策略设置功能,可以让企业内部更加方便得建立统一的浏览体验。

针对中国特色,网吧的管理者来说,使用了自定义版本的IE8,对于网吧管理者也可以更加方便进行管理。

关于兼容性,我们除了与国内领先的互联网网站合作,在一年前就开始解决兼容性以外,还与万网等托管商合作,帮助中小企业的网站解决了IE8的兼容性问题,稍后还会有其它一系列的行动以及合作,解决其它目前还存在的兼容性问题(包括相关网上支付应用等)。当然也非常期望得到各位关于IE8的相关反馈,以便我们在规划下一代浏览器产品时,能够给用户更好的体验。

MSDN Webcast: Silverlight风云演义系列

很久没有讲过Web cast了,上一次讲Gadget是一个应景之作,没有做太多的准备,所以效果其实并不是非常好。本来预计从上周开始,在每周五下午进入到Silverlight风云演义系列的课程,但由于临时出差来到了南方,所以第一堂课的时间改为了下周二(2007年8月7日)下午,这堂课的名字为《从“我佩服”谈起》,顾名思义,我们第一堂课是归纳一下WPF的相关特点,以及与Silverlight相关的特性。如果您对这堂课感兴趣,可以到上面的链接之中直接预订该课程。

风云演义系列将会是我今年下半年的一个重点Web cast课程,希望通过此系列的课程,让大家能够对于Silverlight有一个通盘的了解。当然,由于这是一个新的技术,所以我本人也在学习当中,如果在课程当中有误解的地方,希望大家可以及时给我提出来。

以下是本次课程的第一系列的主要环节:

1. 从“我佩服”谈起(嘉宾:黄继佳)

我的一位同事在某次TechED大会上将WPF(Windows Presentation Foundation)称之为“我佩服”(以拼音首字母组字),从而使之在微软技术界就已经形成了固定的代名词。WPF发展到现在,有哪些比较Cool的应用?我们在本次课程当中给出一个大阅兵,让大家来体验一下借助于“我佩服”之力全球应用开发商所开发的应用程序。WPF—-作为“武林至尊”的宝刀—-究竟又有哪些特性,使得其能够拥有自己的一片天地呢?

嘉宾介绍:黄继佳先生现任微软(中国)有限公司平台及开发技术部技术经理。现主要面向互联网企业,独立软件开发商提供微软公司基于互联网新技术的技术合作,从而更好地提升互联网用户的潜能。在加入平台及开发技术部之前,黄继佳先生曾担任微软亚洲工程院移动技术中心新技术孵化项目项目经理,青檬网络联合创始人。

讲义下载:您可以从此处下载从“我佩服”谈起

2. “闪亮”不出,谁与争锋(嘉宾:温飞飞)

从当初的“WPF/e”,到现在的“Silverlight”,齐集天地之灵气的“闪亮”(Silverlight的中文非官方简称)即将横空出世。作为微软最新面向Web开发的技术,“闪亮”吸引了无数技术以及设计人员的目光。在本次课程当中,我们将一睹“闪亮”的艺术气质,并且了解其底层的技术方向。

嘉宾介绍:温飞飞,网名ai829。知名Flash开发爱好者,精通Adobe全系列产品,对于表现层技术有着多年的研究经验,现就职于搜狐,负责新技术,新产品的研究与推广工作,其博客地址为:http://blog.80s.net.cn

3. “工欲善其事,必先利其器”上之Expression篇(嘉宾:李超)

本课程主要面向设计人员,也适合对Expression感兴趣的开发人员。主要讲解微软最新推出的设计工具Expression Studio,分别会介绍其中的Expression Design,Expression Blend,Expression Media以及Expression Web,其中前两者将会重点介绍。在Expression Blend当中,我们会分别制作WPF/Silverlight的“Hello World”应用程序,与大家对比其中的不同点。

嘉宾介绍:李超,网名Allan。原闪客帝国网站运营总监,AMG WORLD WIDE创意总监,创意与交互设计领域资深设计人,对于表现层技术有着多年的研究经验.著有《CSS网站布局实录》一书,其博客地址为:http://allan.flashempire.net/blog/

4. “工欲善事,必先利其器”之下Visual Studio篇(嘉宾:秦海鹏)

本课程主要面向开发人员以及项目经理,讲解如何利用Visual Studio 2005以及Visual Studio 2008 (Codename: Orcas)来制作WPF/Silverlight应用程序,在Silverlight环节,我们会分别使用C#/Javascript语言来编写相应的业务逻辑。同时,面向项目经理也会介绍开发人员与设计人员的协作问题。

嘉宾介绍:秦海鹏,网名 HopeQ。中国汽车网技术总监,在Web开发方面有丰富的经验,曾开发与实施过多个基于Flash、FlashCom技术的RichMedia 商业产品。其博客地址为http://blog.joycode.com/hopeq .

5. 亲自动手制作视频播放器(嘉宾:范蕊)

本节课,我们将使用上面所介绍的工具动手做一个“视频播放器”,将会使用到上述介绍的工具,即Expression 以及Visual Studio等。在制作完成后,我们还将学习如何部署该应用程序到各种Web Server上,甚至发布视频到Silverlight Streaming(http://silverlight.live.com)上。

嘉宾介绍:范蕊,网名teajava。现效力于百度用户体验部,主要负责MP3、音乐掌门人、搜藏、日文等项目的界面制作,专注于Web开发,实战经验丰富,希望与大家共同交流探讨网络的最新进展。百度空间为: http://hi.baidu.com/GPRS

6. 与现有网站集成(嘉宾:刘俊民)

如何将Silverlight集成到现有网站当中?如何使用ASP.NET Future当中的“<ASP:XAML>”以及“<ASP:MEDIA>”等标签?在本课程当中,我们将完成这最后的一步,将您的Silverlight创作完美的集成到您的现有页面中。对于Silverlight集成时需要留意的一些特殊的技巧以及注意事项都会涉及。

 嘉宾介绍:刘俊民,网名宝玉,知名ASP.NET技术MVP,专注于Web开发基础,现任开放实验室网站站长,有丰富的Web开发经验,尤其在社区软件方向。其博客地址为http://blog.joycode.com/dotey.

 

除了第一堂课,其余每堂课在不出意外的情况下,都会在每周五下午14:00准时与大家在MSDN China Webcast平台上与大家见面,欢迎大家届时收看收听。在听课之前,为了保证您进入课堂非常顺利,建议大家事先做好以下准备:

1.  操作系统

该课堂支持Windows 2000以上的操作系统,IE支持IE6.0 SP1以上的浏览器;

2. Office Live Meeting 2005会议控制台

MSDN Webcast课程全部基于Office Live Meeting 2005会议控制台进行讲授,如果您尚未安装该控制台,可能届时您进入课程需要花费一定的时间,建议您可以先预安装该平台,点击此处查看详细信息

3. 其它

为了不影响他人工作或者休息,建议您在电脑上配备专用耳机。如果您想实时感受我们在课程当中所演示的应用程序,或者想进行开发实战,建议您安装以下软件:

    • .NET Framework 3.0(这是浏览WPF DEMO的必需安装,.NET 3.0必须安装在Windows XP SP2以上操作系统上)
    • Silverlight 1.0 RC & Silverlight 1.1 Alpha Refresh(这是浏览Silverlight DEMO的必需安装,请至http://www.silverlight.net上进行安装)
    • Visual Studio 2005 Or Visual Studio 2008 Beta 2(这是进行开发实战的必须安装,还需要安装Cider插件,以便支持Silverlight开发)
    • Expression Bl
      en
      d 2八月社区技术预览版(这是进行设计实战的必须安装,请至http://www.microsoft.com/expression上进行安装,请注意,是Blend 2,不是Blend)

 

 

有任何建议或者意见,欢迎大家在此处留言提出,非常感谢!

Surface in Silverlight

相信很多朋友已经看到过Surface的精彩Demo了(http://www.microsoft.com/surface),这其中会有很多朋友为这里面所展现的全新界面以及互动方式激动不已,尤其是用手指来对照片进行缩放、移动的操作。其实呢,Surface所使用的操作系统是Windows Vista,而应用程序全是基于WPF(Windows Presentation Foundation)开发的。

那么有没有可能使用Silverlight来开发类似的应用程序呢?呵呵,完全可以。昨天我们在珠海就简单的修改了一个Silverlight Demo的源代码,做成了下面的这个内容。在演示时,由一个演示人员在投影屏幕上装作是在Surface设备上进行操作,而在电脑上,由人使用鼠标进行实际操作,完全可以达到以假乱真的感觉。

image

这个源代码大家可以在http://www.silverlight.net 上找到,我们进行了以下修改:

1. Full Screen Support

2. 将鼠标悬浮在照片上的颜色块给改成透明;

有兴趣的朋友也可以试试。

另外,目前网络上已经有了使用Silverlight所做的Silverlight学习教程(English Version),大家可以到下面地址进行查看:

http://www.nibblestutorials.net/

Silverlight的业务场景

下文是我目前正在写的Silverlight White paper其中一章,主要用来介绍Silverlight的业务场景,还没有最终定稿,现在发布在此处,希望征集一些大家的意见反馈,同时,也欢迎更多的朋友来交流Silverlight的业务场景。

1.1 视频分享平台

目前在国内有很多的视频分享平台,大部分使用非常类似的技术架构,为最终受众提供多媒体体验。但基于目前其类似的技术构构,大部分用户体验都存在以下的一些不足之处:

1. 搜索引擎不友好:PV(Page View)对于网站的发展非常重要,而PV的来源中很重要的一部分是来自于搜索引擎的索引。但目前大部分视频分享平台网站所使用的技术基本上都无法达到SEO(搜索引擎优化/友好)的要求,从而造成了搜索引擎收录偏低的现状。这也是很多运营视频分享平台最为关心的地方,虽然有些网站采用Meta Data的方式来提高收录数量,但效果并不理想。Silverlight中的页面描述采用了XAML这种XML文本文件格式,并不编译为二进制文件,其天生支持SEO。另外,Silverlight中的各种资源文件均是作为单独文件方式存在,而不是作为二进制文件的内嵌式资源文件存在。

2. 互操作性:目前业界使用的视频分享平台解决方案在业务逻辑代码中采用了非标准的脚本代码,对于开发人员以及设计人员来说,需要额外的学习。并且这种代码非常难以与平台的业务逻辑代码,如PHP、ASP、JSP或者ASP.NET技术进行系统级的交互。而微软的Silverlight在1.0时使用的是Java script作为业务逻辑代码,在1.1中又使用了C#、Ruby等编译型语言,使得学习成本降低,提高了交互性,同时在运行效率上也得到了极大的提高。

3. 视频质量很差:由于体积上的压缩和编码上的简单化,省略了较多的画面细节,目前市场上广泛使用的视频格式的视频效果并不理想,较为粗糙,难以满足较长时间观看的要求。Silverlight则通过获艾美奖的Windows Media技术,传输流量可降低46%,并且和现有的Windows Media流量配置方案兼容。如果采用下一代Windows Server系统中的IIS媒体包,流量还将进一步下降。VC-1编码的高清晰视频,也可以在当前网络条件下进行传输。

4. 价格非常高:业界目前普遍使用的解决方案,其工具以及服务器价格都是非常高昂,尤其是服务器,如果以不限流量的解决方案价格对比,微软的解决方案是对方的十分之一。

同时微软还兼顾了与其它解决方案的兼容性,对于现有解决方案,可以在共存时进行逐步的迁移。

微软提供了整个视频分享平台的架构解决方案,依赖这套解决方案,可以在节约成本的前提下,快速建立一套视频分享平台。

image

通过这些解决方案,我们可以尽享以下优势:

image

1.2 Rich Interactive Application

由于目前网站的主流标准还是采用HTML + CSS + Java script来呈现内容。其表现方式以及交互方式都比较单一,在很多时候,并不能提供非常好的用户体验。而Silverlight则可以为普通的基于网页的应用程序提供更加丰富的交互性富媒体体验。

由于Silverlight在前台使用XAML来进行内容呈现,而业务逻辑使用Java Script或者C#以及Ruby等语言进行构建,对于开发团队来说,学习成本降低。

同时,Silverlight由于支持互联网一些标准协议,如RSS、ATOM、Web Service等等,具有非常高的扩展性。

image

1.3 边栏小工具(Sidebar Gadget)

随着越来越多的最终用户采用Windows Vista操作系统,Windows边栏(Sidebar)也引起很多互联网内容提供商的注意。越来越多的互联网厂商或者独立软件开发商已经开始开发Windows边栏小工具(Sidebar Gadget)。

使用边栏小工具,对于互联网厂商,具有以下优势:

1. 提高用户忠诚度: 由于Windows边栏小工具是安装于Windows操作系统平台上的,并且会随着Windows自动启动运行,所以利用Windows边栏小工具可以极大的提高用户的忠诚度;

2. 提高访问量: 利用Windows边栏小工具,用户可以在不打开浏览器的情况下访问互联网厂商所提供的服务,无形中为互联网厂商提高了流量。部分业务,如股票或者天气信息,基于特殊要求,需要定期刷新。即使用户没有做任何操作,在用户开机期间,仍然为网站提供固定的流量来源;

3. 扩展赢利模式:目前很多OEM厂商希望借助于Windows Vista实现同类产品的差异化,而互联网内容以及服务与Windows边栏小工具的结合,会帮助OEM厂商实现这个愿望。进行适当的商业交流,互联网厂商可以借助Windows边栏小工具创建新的赢利模式。

目前,业界常见的Windows边栏小工具大部分使用HTML形式呈现,内容表现单一。而Silverlight则可以提供更加丰富的表现形式。当前版本已经支持用以创建Windows边栏小工具,而AOL(美国在线)已经推出使用Silverlight所创建的Windows边栏小工具的测试版。

1.4 在线休闲游戏

在线休闲游戏目前已经成为互联网业界的新的战场。越来越多的互联网内容提供商开始构建自己的在线休闲游戏平台。在目前,很多在线休闲游戏所使用的平台都是在使用自己的ActiveX控件,但由于国内恶意软件的现状,使得很多用户不敢下载相关的ActiveX控件,降低了普及率。而微软的Silverlight则在很短的时间内获得了全面的普及。同时,其先天性对于游戏特性的支持,也使其成为在线休闲游戏平台的第一选择。

同时,Silverlight在1.1版本的后台业务逻辑将使用编译型语言,如C#、VBx或者Ruby等来进行构建,相对于Java Script这种解释型脚本语言来说,前者的执行效率相当于后者的一千倍,对于复杂的业务逻辑计算提高了响应时间。而且对于开发人员来说,面向对象的编译型语言更加易于学习,降低了学习成本。

Windows Live Writer Beta 2版本发布

上一个版本还是去年十一月份发布的,现在终于等到新的更新了。开心过去一直使用一个Internal Dogfood的版本,有很多小Bug,比如发布的时候会报一个类型转换错误,让开心苦不堪言,不过作为Dog foot,还是不错的。

现在这个版本界面更加清新,安装过程也非常棒,最主要的是:它已经开始提供中文版了。虽然很多翻译,开心感觉很不满意,比如将“Tag”翻译为“标记”,我的天呐!做翻译的这哥们是不是从来不写Blog呀?

下图就是这个新软件的截图,想下载可以从http://get.live.com/betas/writer_betas 得到,同时还可以下载Windows Live Mail。

我有一个比较Crazy的Idea,目前很多网友喜欢在博客中发布一些动态化内容,比如视频或者一些小型的游戏内容,可否让Windows Live Writer支持Silverlight发布?甚至支持Popfly提供的Mash-up的聚合内容?如果是这样,博客就可以更加动态化了:)

Silverlight开发基础答疑(5)

很好玩的是看到了Silverlight目前在国内受到了很多开发者的热情拥护,“自由、创新、研究、探索”先生在Google Groups里面创建了一个讨论组,开张不到一个月,就有176名成员参与。而Silverlight中文社区也很快就开张了,当然,到现在为止,我还不知道站长是哪位,如果是您,请您在Comments里面说一声。嘿嘿,我还得向你收小道消息费用,估计你之所以抢注到这个名字,和我这个贴子还是有一些关系的。

8. Silverlight为什么不支持中文?有没有别的途径可以解决这个问题呢?

问题描述:我相信凡是准备采用Silverlight技术或者正在使用Silverlight构建应用程序的开发者,很多人已经开始怨声载道了,为什么Silverlight不支持中文(严格来说,是中日韩等字体)?其实原因很简单,这是一个法律范畴的问题,因为每个字库都有其版权信息,而且大部分字库是不允许转移使用的(比如常见的将Vista中的微软雅黑字体复制到XP或者手机上使用应该是非法的)。

解决方案一:请参见http://blog.joycode.com/joy/archive/2007/04/06/100553.aspx中的第二项解答,即使用Glyph来代替TextBlock;但这种解决方案存在很多问题,即Glyph本身不支持换行等操作,意味着你只能把它当作标签字体来使用,而无法用其来显示正文。另外,每次浏览这个页面时,都需要下载完整的字体文件,请注意,仅微软雅黑字体(不含粗体部分)就有15M左右大小。虽然现在使用宽带的人员越来越多,但仍然是一个非常大的负担。

解决方案二:使用ODTTF文件,所谓的ODTTF文件,其实是XPS所带的嵌入式字体文件,这种字体会自动从原字体文件中提取所需要的字样,而不是简单的拷贝原字体的所有字样。操作方法如下:

  • 首先使用Word或者写字板应用程序,使用您中意的字体输入你的Silverlight中所需要的文字;
  • 然后在Word或者写字板当中选择“打印”功能,打印机选择Microsoft XPS Document Writer(在您安装了.NET 3.0 Framework)后会自动增加;
  • XPS Document Writer本身是一个打印到文件功能,在其文件选择框中选择文件路径,并且给出相应的文件名;
  • 打印完成后,在文件浏览器中找到完成的XPS文件,并且将其后缀名由”.xps”修改为”.zip”;(其实微软的好多文件格式目前都使用了ZIP格式,比如Office 2007中的DOCX、PPTX、XLSX等等,都可以将名字改为ZIP后缀名,并且使用WinZip或者其它文件压缩程序打开)
  • 直接找到这个压缩文件包中的“\documents\1\resources\fonts”中的文件,并且将其提取出来,这个文件名大部分为一个GUID加一个ODTTF后缀名;
  • 将提取出来的ODTTF文件再次使用ZIP格式打包成myfonts.zip文件,并且放在您的Silverlight应用程序的根目录中;
  • 假设您的XAML中的TextBlock的名字为textBlock1,那么在其后端所跟的JS文件中使用Downloader控件进行修改,大体如下:

function onLoaded(sender, eventArgs)
{
  var control = sender.getHost();

   var downloader = control.createObject(“downloader”);

   downloader.addEventListener(“Completed”, “onCompleted”);

   downloader.open(“GET”, “myfonts.zip”, true);//注意此处的myfonts.zip,根据您的实际情况进行更改

    downloader.send();

}
function onCompleted(sender, eventArgs)
{
var myTextBlock = sender.findName(“textBlock1”); //此处是TextBlock的名称

myTextBlock.setFontSource(sender);

myTextBlock.fontFamily = “Microsoft Yahei” ;//注意此处的字体名称,我这儿是使用的“微软雅黑”字体,您可以根据实际情况使用

myTextBlock.text = myTextBlock.text;
}

 

总结一下,这样的解决方案在目前应该是最有效的解决中文显示问题的,当然,在您使用部分字体时,您必须要注意一下相关的法律问题,是否取得了所使用的字体文件的跨平台授权。(该解决方案对于动态显示文本仍然无效)。

解决方案三:Silverlight产品团队目前正在致力于该问题,解决此问题目前主要的困难并不是技术问题,而主要是法律上的一些issues.

 

我已经为解决方案二编写了一个小型的Demo,如果您感兴趣,可以在留言中留下您的邮件,我可以发送给您。(由于本人工作繁忙,无法全部发送,所以我只会发送给前五位留下邮件地址的朋友,后来的朋友可以给这五位朋友写邮件索要)。

 

参考信息

http://blogs.msdn.com/webnext/archive/2007/05/25/silverlight-font-embedding.aspx

http://wpf-e.spaces.live.com/blog/cns!2B248D261D0E0035!122.entry

Silverlight 1.1的海报

相信大家在五一的时候,都已经知道了Silverlight的消息,其实在此之前,开心也曾经介绍过相关的信息,只不过有一些比较详细的信息没有说而已。

今天,除了大家可以使用SDK来体验Silverlight 1.1以外,MS也推出一个图片,用来让大家了解Silverlight 1.1的全景。

下载下来,并且把它打印出来吧:)

SilverLight开发基础答疑(3)

在4月20日Bill Gates参加的“创新·中国·未来”大会上,由搜狐公司演示了其使用SilverLight所构建的以奥运为主题的产品,但由于一些花絮,可能并不是所有的朋友都对此有所了解。不过在4月30日在美国拉斯维加斯举办的MIX07大会上,将会再次展示该产品。同时在此次大会上将会更多的关于SilverLight的内幕信息披露。开心将会参与此次盛会,不知道哪位也会同往。:)

本次会议后,也见到了Laurence Moroney先生,Laurence先生曾经先后写作过Ajax以及WPF相关的书籍,其中那本Ajax书就是由DFlying所翻译(上周也到上海见到了DFlying,对其未来的前途表示祝贺)。在不到一个月的时间内,Laurence先生就访问中国两次,帮助很多使用新技术的公司解决了问题,在此,对Laurence先生表示感谢。

 

5. 是否有相应的工具帮助我们开发基于SilverLight的作品,还是仅能使用记事本?

问题描述:虽然XAML语言是一个轻量级的语言,并且应用于SilverLight的XAML语言中的标签相对较少,但如果单纯使用记事本来撰写SilverLight应用仍然是一件复杂的事情,微软是否会提供相应的工具帮助我们开发基于SilverLight的作品呢?

解答:微软将会面向美工人员以及开发人员提供相应的开发工具,从而帮助更加快速的开发相应的应用。面向美工人员我们提供Expression Design进行素材设计,提供Expression Blend进行交互设计,以下是Expression Blend面向SilverLight所提供的项目类型(由于尚在开发期内,不保证在RTM时完全相同):

而面向开发人员,微软会为Visual Studio 2005提供相应的插件帮助他们开发Java Script业务逻辑代码,也可以使用所见即所得的方式开发XAML表现层,该插件可以在SilverLight的SDK中安装。而面向Orcas,微软应该会集成该项目。

6.  使用SilverLight来播放音视频文件,是否需要客户端操作系统安装Windows Media Player播放器?

问题描述:SilverLight作为一款跨平台、跨浏览器的解决方案,支持强大的视音频处理能力。其主要支持的视音频格式主要包括MP3、WMV以及WMA格式,我们知道在Mac机上并没有相应的Windows Media Player播放器,那么如果要播放类似文件,需要先在操作系统上安装Windows Media Player播放器?

解答:不需要,虽然目前的CTP版本的运行时仅仅只有1M左右,但在此运行时当中,已经包括了Windows Media的解码技术,这也就意味着你不需要在客户端操作系统中安装任何的Windows Media Player等软件,即可播放相应的视音频文件,并且在未来的版本中,微软还将提供DRM技术支持,帮助您进行版权保护功能。

WPF/E开发基础答疑(1)

很多朋友可能已经开始尝试使用WPF/E来在网络上制作一些动画,在其中可能遇到了一些问题。尤其是当前公开版本还是CTP,所以有一些东西在互联网中得不到解答,本人不才,准备通过本博客系列为大家进行答疑解惑。(由于WPF/E的正式名称即将公布,所以在正式名称公布后,本系列教程也会进行更新)

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>

 

以上问题解答得益于公司同事Laurence Moroney(其太太是华人,前段时间刚访问过中国)

实时监测机场的起降情况

经常坐飞机,有时候就想能不能有一个系统能够让我了解我所乘坐的飞机的具体情况,以及机场的准确位置。当然,目前我对首都机场的了解简直比我家还要熟悉。上海虹桥、深圳以及广州白云等机场也是比较了解的。但是当我第一次到达西雅图机场的时候,当时还真有一些昏头昏脑,实在太大了,呵呵。

在首都机场的网站上,我们可以查找到各航班的信息,比如是否晚点、计划时间等,而且是以图表方式给出的。但是能否以更加精确的方式来反应呢?想像一下,如果您能够以实时动画的方式查看各个航班的信息:是否满员、飞机实时的具体位置、方向、起飞降落时间、机型等等情况,那是多么爽的一件事情呀?如果您对这件事情比较感兴趣,那么请看左图。这是苏黎士机场的实际运营情况。当然为了“反恐大业”的需要,您可以看到的这个版本使用了一些历史数据,而没有接收实时的数据。

网站地址:

http://wpf.netfx3.com/direct/zurich/zeuswpf.xbap

软件需求:

操作系统必须是Windows XP+SP2、Windows Server 2003+SP1或者Windows Vista,前两者操作系统必须安装.NET Framework 3.0。

键盘操作:

Ctrl+鼠标右键:扩大视野范围(Zoom Out)

鼠标左键拖动:移动视野范围

鼠标右键拖动:缩小视野范围(Zoom In)

英文博客信息:http://blogs.msdn.com/tims/archive/2007/03/27/great-wpf-applications-13-z-rich-airport.aspx

我感觉国内的一些ISV软件厂商可以借助WPF的机遇,做一些富有创新的软件,比如股票软件、基金软件等等。可能基于原来的软件开发的难度,有很多创新我们无法付诸实施,但现在既然有了WPF这么强大的工具,我们还在等什么呢?:)