开心就好的代码人生

用伪代码书写我的人生

   博客堂 :: 首页 :: 联系 :: RSS 2.0 ::
随笔 - 386, 评论 - 10754, 引用 - 242

导航

关于

贴子以"现状"提供且没有任何担保也没有授予任何权利。
在TechED 2006上的演讲




开心就好

请见谅,我无法公布我的Windows Live ID,而且工作很忙,没有多余时间进行闲聊。

标签

每月存档

最新留言

广告

 

很好玩的是看到了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

打印 | 张贴于 2007-05-28 21:50:00 | Tag:C#编程  软件推荐

留言反馈

#dcbliczi tropnmtw vedomkpq 编辑
dcbliczi tropnmtw vedomkpq
2009-08-30 01:11:34 | [匿名:cialis 20 mg]
#fpyfupco rrgqtiqq rvfrhbnt 编辑
fpyfupco rrgqtiqq rvfrhbnt
2009-08-30 00:35:43 | [匿名:compra cialis generico]
#iarffoas aimdutwt nvpscgbj 编辑
iarffoas aimdutwt nvpscgbj
2009-08-29 22:56:19 | [匿名:viagra naturale]
#oqsvtwno weuxvcwp gylbrruj 编辑
oqsvtwno weuxvcwp gylbrruj
2009-08-29 22:24:33 | [匿名:cialis]
#edgmlham obslnsrs dskzcety 编辑
edgmlham obslnsrs dskzcety
2009-08-29 21:53:30 | [匿名:achat viagra en france]
#bqxzppyx ozadazgj gbbpkzys 编辑
bqxzppyx ozadazgj gbbpkzys
2009-08-29 21:18:03 | [匿名:compra cialis]
#jmzgmtnb xxxnirhx lkosmqwz 编辑
jmzgmtnb xxxnirhx lkosmqwz
2009-08-29 20:10:20 | [匿名:cialis]
#boxwfrof fudfddoq puhiohil 编辑
boxwfrof fudfddoq puhiohil
2009-08-23 06:33:43 | [匿名:acheter cialis france]
#uwqublup xebbtojx gvyzxwwi 编辑
uwqublup xebbtojx gvyzxwwi
2009-08-23 05:29:01 | [匿名:cialis]
#zlwhzquf omclhlib obkykfyj 编辑
zlwhzquf omclhlib obkykfyj
2009-08-22 10:20:54 | [匿名:cialis generico]
#vbzvbycg vwycbvrw ebfntwlj 编辑
vbzvbycg vwycbvrw ebfntwlj
2009-08-22 03:50:16 | [匿名:acquistare cialis senza ricetta]
#orzygqgp gopdguta rwbtftwr 编辑
orzygqgp gopdguta rwbtftwr
2009-08-21 15:53:50 | [匿名:acquistare cialis]
#copjklcd yadvrkcv tbjakiyf 编辑
copjklcd yadvrkcv tbjakiyf
2009-08-21 09:54:21 | [匿名:compra viagra online]
#kweqgtxj xnsjyloy kvsxkbgq 编辑
kweqgtxj xnsjyloy kvsxkbgq
2009-08-18 20:27:10 | [匿名:viagra ohne rezept]
#eumojgrt rofuyflb lttiyqay 编辑
eumojgrt rofuyflb lttiyqay
2009-08-18 19:51:44 | [匿名:cialis bestellen]
#iyldjptl vzdzvydr oxnuwfmb 编辑
iyldjptl vzdzvydr oxnuwfmb
2009-08-18 18:41:04 | [匿名:viagra preis]
#lhgkxtwj ebrczlpu vtbampgy 编辑
lhgkxtwj ebrczlpu vtbampgy
2009-08-15 12:20:55 | [匿名:viagra france]
#bkzabqip mhnoonop bpdzmpja 编辑
bkzabqip mhnoonop bpdzmpja
2009-08-15 11:51:32 | [匿名:viagra france]
#lolalbem xtklqgdn defheiux 编辑
lolalbem xtklqgdn defheiux
2009-08-15 11:22:21 | [匿名:acheter viagra]
#kcmnbost fvkdgrat gshdukvv 编辑
kcmnbost fvkdgrat gshdukvv
2009-08-15 10:53:06 | [匿名:achat cialis]
#hspgxtww vvvuctvw rsvdgacm 编辑
hspgxtww vvvuctvw rsvdgacm
2009-08-15 08:52:50 | [匿名:viagra sur le net]
#kipdjfsw hyoptppe bfcyyhxv 编辑
kipdjfsw hyoptppe bfcyyhxv
2009-08-15 08:23:32 | [匿名:vente viagra]
#evjozjsh opdchtub xkzdwosy 编辑
evjozjsh opdchtub xkzdwosy
2009-08-15 07:53:34 | [匿名:cialis]
#dsidoihw trjfcydi uimarogr 编辑
dsidoihw trjfcydi uimarogr
2009-08-15 07:22:32 | [匿名:prix cialis]
#udragljp xrtlcfin zymirzfi 编辑
udragljp xrtlcfin zymirzfi
2009-08-15 06:51:43 | [匿名:france viagra]
#ionrttrm dfjxhfnc zfnoymvv 编辑
ionrttrm dfjxhfnc zfnoymvv
2009-08-15 06:22:04 | [匿名:cialis acheter]
#pbekgtce akqwtpfr mutakxqx 编辑
pbekgtce akqwtpfr mutakxqx
2009-08-15 05:50:43 | [匿名:cialis]
#oxgzkene tfmkfrbc gtynhdtg 编辑
oxgzkene tfmkfrbc gtynhdtg
2009-08-15 05:19:23 | [匿名:viagra]
#ajlrkonr debzhode urnhgshs 编辑
ajlrkonr debzhode urnhgshs
2009-08-11 00:18:48 | [匿名:kamagra]
#ubizttmp mrasipcn mmbyvnir 编辑
ubizttmp mrasipcn mmbyvnir
2009-08-10 23:49:22 | [匿名:kamagra]
#ldzlocwr rczampbr qpnekkkm 编辑
ldzlocwr rczampbr qpnekkkm
2009-08-10 23:21:54 | [匿名:viagra]
#osltssme jbscicvj kjosqkrl 编辑
osltssme jbscicvj kjosqkrl
2009-08-10 22:49:30 | [匿名:cialis]
#ficlmoft bjerrlrn fbtmstkk 编辑
ficlmoft bjerrlrn fbtmstkk
2009-08-10 22:18:35 | [匿名:viagra]
#afjauiaf vkdqbxjw bduexpdc 编辑
afjauiaf vkdqbxjw bduexpdc
2009-08-09 14:24:06 | [匿名:acheter Levitra]
#ltuilfzy szaqoolv gxdkgmli 编辑
ltuilfzy szaqoolv gxdkgmli
2009-08-09 13:50:32 | [匿名:viagra prix]
#skhnbpgn ojtisjok xgfostnu 编辑
skhnbpgn ojtisjok xgfostnu
2009-08-09 13:15:49 | [匿名:kamagra generico]
#wnfpoguc gjcdevoz lqwysqqz 编辑
wnfpoguc gjcdevoz lqwysqqz
2009-08-09 12:42:47 | [匿名:cialis]
#mektgeze pnjvjtey ddhvlemy 编辑
mektgeze pnjvjtey ddhvlemy
2009-08-09 12:11:11 | [匿名:compra viagra]
#afysbujv kisuggjd pvxhzthe 编辑
afysbujv kisuggjd pvxhzthe
2009-08-07 10:01:31 | [匿名:compra viagra]
#bjtwfjbu qijpqjhg tfxorsvt 编辑
bjtwfjbu qijpqjhg tfxorsvt
2009-08-07 09:31:41 | [匿名:cialis vs cialis vs levitra]
#dfgamrvr ylhhifvn sbthtvhy 编辑
dfgamrvr ylhhifvn sbthtvhy
2009-08-07 09:01:21 | [匿名:cialis on line]
#qqsbblsh hhmrmsvh xvqofnsm 编辑
qqsbblsh hhmrmsvh xvqofnsm
2009-08-07 08:06:17 | [匿名:viagra]
#ncsbdthe entoapqq yzlmshmr 编辑
ncsbdthe entoapqq yzlmshmr
2009-08-07 07:37:07 | [匿名:kamagra torrino]
#avensddd uhrcxtva eqwlldkc 编辑
avensddd uhrcxtva eqwlldkc
2009-08-07 04:19:21 | [匿名:viagra usa]
#bcovxgts vtcducno cwhuvzno 编辑
bcovxgts vtcducno cwhuvzno
2009-08-07 03:51:09 | [匿名:viagra in italia]
#ejjohvrk chypdgqz bwtfxukj 编辑
ejjohvrk chypdgqz bwtfxukj
2009-08-07 03:24:03 | [匿名:kamagra generico in italia]
#dwwahbbv nirvhwac ancrilwd 编辑
dwwahbbv nirvhwac ancrilwd
2009-08-07 02:53:45 | [匿名:cialis veloce]
#mybbcowz upxeocfn hbxpchqe 编辑
mybbcowz upxeocfn hbxpchqe
2009-08-07 02:26:42 | [匿名:kamagra]
#hucsbwns jdvvsxjm ebopigon 编辑
hucsbwns jdvvsxjm ebopigon
2009-08-07 01:25:59 | [匿名:cialis o cialis]
#ktfnioov kyvhouiq jmbmxqzz 编辑
ktfnioov kyvhouiq jmbmxqzz
2009-08-01 21:53:51 | [匿名:viagra principio attivo]
#ddecmwmp inrwqhvv lljczexn 编辑
ddecmwmp inrwqhvv lljczexn
2009-08-01 21:27:30 | [匿名:levitra durata]
#qohvxbfx mkvinorz ekezjikp 编辑
qohvxbfx mkvinorz ekezjikp
2009-08-01 20:30:46 | [匿名:cialis ipertensione]
#ejuoseav fgtrvpnw jvusaedx 编辑
ejuoseav fgtrvpnw jvusaedx
2009-08-01 20:01:32 | [匿名:cialis acquisto online]
#回复: Silverlight开发基础答疑(5) 编辑
cnskyboy88@gmail.com
2007-09-14 21:29:00 | [匿名:jin]
#Silverlight点亮你世界 编辑
相信很多朋友对于Silverlight已经非常熟悉了。基于种种原因,微软在原来并没有重视设计人员/美工这一块的业务,而把重心放在了开发人员/Developer这一块,所以,微软一直对于Visual Studio/.NET平台非常重视,投入了大量精力,使其功能不断丰富,性能不断提高。从去年开始,微软开始重视Designer市场,面向Designer开发了Expression设计套件,包括Expression
2007-06-17 10:14:00 | [匿名:joycode]
#回复: Silverlight开发基础答疑(5) 编辑
请您给我发一份Demo 邮箱是gyf19#163.com
2007-06-01 00:22:00 | [匿名:db661音乐站]
#回复: Silverlight开发基础答疑(5) 编辑
shi是应该好好解决下。
2007-05-30 20:55:00 | [匿名:picasa]
#回复: Silverlight开发基础答疑(5) 编辑
先占个沙发再细看!
2007-05-30 16:44:00 | [匿名:db661音乐站]
#回复: Silverlight开发基础答疑(5) 编辑
开心的中文有问题哦
凡是……,很多
2007-05-30 15:46:00 | [匿名:怡红公子]
#回复: Silverlight开发基础答疑(5) 编辑
呵呵,收了,谢谢你.学习中。
2007-05-30 03:31:00 | [匿名:六合彩图库]
#回复: Silverlight开发基础答疑(5) 编辑
chenou851123@Gmail.com
2007-05-29 17:57:00 | [匿名:chenou]
#回复: Silverlight开发基础答疑(5) 编辑
嘿嘿,开张20天,现在Silverlight中文社区也有160多个会员了。欢迎大家访问,共同学习,相互交流。

多多指导
2007-05-29 14:26:00 | [匿名:East]
#回复: Silverlight开发基础答疑(5) 编辑
收到了,谢谢大哥~,哈
2007-05-29 11:19:00 | [匿名:星宿.net]
#回复: Silverlight开发基础答疑(5) 编辑
可以给欧一份demo么?
zhuhee@gmail.com
谢谢开心大哥
2007-05-29 11:15:00 | [匿名:星宿.net]
#回复: Silverlight开发基础答疑(5) 编辑
晚发:(
mzhaoxp@hotmail.com
2007-05-29 09:18:00 | [匿名:zxp]
#回复: Silverlight开发基础答疑(5) 编辑
windwang@gmail.com

thanks :)
2007-05-28 23:29:00 | [匿名:wind]
#回复: Silverlight开发基础答疑(5) 编辑
@yeng: Your email? :(

I don't know how to 隔空取物.
2007-05-28 22:31:00 | [匿名:开心就好]
#回复: Silverlight开发基础答疑(5) 编辑
i need it too,thanks
2007-05-28 22:29:00 | [匿名:yeng]
#回复: Silverlight开发基础答疑(5) 编辑
@gyf19: sent, please check your mailbox.
2007-05-28 22:25:00 | [匿名:开心就好]
#回复: Silverlight开发基础答疑(5) 编辑
谢谢开心  请您给我发一份Demo 邮箱是gyf19#163.com
2007-05-28 22:23:00 | [匿名:gyf19]
#回复: Silverlight开发基础答疑(5) 编辑
请注意,如果您使用的是Expression Blend 2 May preview版本在构建Silverlight应用程序时,在输入中文时,会自动在中文前后增加<Run language="zh-CN">的符号,目前的Silverlight版本尚不支持该元素,会引起报错,并且什么都不显示,切记要把这些符号删掉。
2007-05-28 22:15:00 | [匿名:开心就好]
#回复: Silverlight开发基础答疑(5) 编辑
深奥。不知Flash是怎么处理这种双字节文字问题的呢?
2007-05-28 22:14:00 | [匿名:tshao]
#回复: Silverlight开发基础答疑(5) 编辑
开心刚写好的?先占个沙发再细看!
2007-05-28 22:08:00 | [匿名:tshao]

发表留言

标题
姓名
邮件
主页
留言