解决Silverlight引用中文字体的问题
更新时间:2023-07-21 21:25:01 阅读量: 实用文档 文档下载
- 解决肚子胀气最快方法推荐度:
- 相关推荐
解决Silverlight引用中文字体的问题
问题描述
在Silverlight程序中,对文字设置了中文字体之后不起任何作用。 问题分析
Silverlight内置了十几种常见拉丁字体,如Arial,Comic Sans MS,Courier New,Lucida Sans Unicode等。默认使用的字体是Portable User Interface。这是一种复合字体,Silverlight会根据文字的语言选择最佳的字体。但是,这种字体通常在显示中文的时候非常难看。下图是默认的显示效果:
所以,我们需要在程序中手动指定文字的字体。
三种字体引用方式
如果使用的字体是Silverlight内置支持的,那么无需做任何配置,直接指定FontFamily即可。内置的字体有Arial,Arial Black,Comic Sans MS,Courier New,Lucida Sans Unicode,Times New Roman,Georgia,Trebuchet MS,Verdana和Webdings。使用这些字体不依赖于客户端操作系统。
同时Silverlight也支持引用本地系统一部分字体(注意,不是全部本地字体都支持)。如Segoe UI,Symbol,Tahoma,宋体,等等。使用这些字体需要注意,其他客户端系统中可能不存在这些字体,如英文操作系统一般没有宋体。那么如果你使用了宋体那就会有问题。
如果你需要让Silverlight应用程序在不同系统下都有一致的字体,或者你想用某些字体,但是这些字体不支持本地引用(如隶书),那么Silverlight允许你将字体文件打包到应用程序中,可以放在Xap包中,也可以放在ClientBin目录下,然后在代码中动态下载并引用这些字体文件。这样牺牲的代价就是Xap包会变得较大。
为了更好显示中文,我需要为上面的文字显式指定使用“宋体”。代码如下:
<Grid x:Name="LayoutRoot" Background="White">
<TextBlock Text="Hello,测试中英文混合显示效果
" FontSize="26" FontFamily="宋体"/>
</Grid>
Ctrl+F5运行,却发现字体没有发生明显的变化。说明字体的设置不起作用。我又测试了一下将宋体打包到应用程序中。为了简单,我使用Blend3帮我自动完成这个操作。
选中一种字体之后,勾选字体面板下面的Embed复选框即可将指定字体打包到Silverlight工程中去。这个时候工程中自动生成了Fonts文件夹,里面放置了宋体这个字体文件。
同时,Xaml也发生了变化,由引用系统的宋体改成引用Fonts.zip包中的宋体了。如下:
<Grid x:Name="LayoutRoot" Background="White">
<TextBlock Text="Hello,测试中英文混合显示效果
" FontSize="26"FontFamily="Fonts/Fonts.zip#宋体"/>
</Grid>
运行结果发现字体依旧。
后来查阅Silverlight官方文档的时候,看到字体列表一节时,突然想到,是不是因为字体名不规范?不能直接使用“宋体”,而应该使用Simsun。赶紧测试了一下,发现果然是这个问题。只需将上面两个示例代码中的宋体改成Simsun即可正确显示出宋体的效果来。
后来又测试了一下其它中文字体,如微软雅黑,如果直接这样写中文的话是显示不出来的,一定要写“Microsoft YaHei”。可恶的Blend,帮我自动生成的代码居然有这种莫名其妙的错。不知道这算是Silverlight和Blend的Bug还是设计使然。
总结
在Silverlight中,如果要引用字体,一定不能直接写上中文,否则不起任何作用。如果你是在英文操作系统下的话,你可以打开字体文件
(C:\windows\fonts文件夹下,Silverlight支持ttf,odttf和otf这几种后缀的字体文件),其中的字体名称一栏就是FontFamily所使用的名称。只是在中文操作系统下,支持中文的字体在这里会显示为中文名,而不是英文名。
常见中文字体名和英文字体名的对应关系如下:
对于非中文操作系统的电脑,可能根本没有安装任何中文字体,因此这种方法不能解决根本问题。
Silverlight默认的字体设备字体:Portable User Interface,字号为11px,其实设备字体对中文支持得很好,只是字号小了一些,只要字号不小于11px就显示得很清晰了。
记住一点,中文字体一般都很大,大家千万别在自己的应用中嵌入中文,那样会让.xap猛增,应该尽量Silverlight使用内置字体。如果为了追求美观非要用中文字体的话,最好用图片来代替。
本文来自sunny 的博客,原文地址:
/s/blog_642bc8ef0100np6k.html
正在阅读:
.清华大学_严蔚敏04-09
妈妈笑了作文600字07-17
用举世无双造句02-10
《普通物理》作业集(完成)06-01
评选标注03-30
神奇的向日葵作文06-13
软件需求分析(案例)06-23
二诊模拟练习02-01
数据结构查找和内排序习题10-03
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 中文字体
- Silverlight
- 引用
- 解决
- 问题
- 教学沙龙式教研是一种由教师自愿参加的可以自由发言的针对教学实际问题的讨论会
- 1泰兴市建筑工程安全监督工作流程图
- 云计算环境下我国图书馆自动化系统的发展与应用
- 自费出国留学中介服务委托合同
- 2013年北京电影学院【摄影系】电影摄影创作理论考研真题 考研试题答案 考研经验 主要导师
- 苹果病虫害无公害防治技术
- 各种型号拉森钢板桩技术参数大全
- 2010年中央财政主要污染物减排专项资金环境监测项目建设方案转发通知
- 高二化学电解池练习题
- 教育学小论文要求
- 《品牌管理与决策》课程综合练习题+答案+打印
- 重卡冷却系统匹配性探讨研究
- 万智牌异能全解释 异能表大全分享
- 个人授信项下借款合同 - 中国民生银行
- 八年级语文之《鱼我所欲也》学案(两课时)
- 溴已新联合美敏伪麻治疗39例急性上呼吸道感染所致咳嗽的临床观察
- 真正喜欢一个人的感觉是什么
- “十三五”规划重点-海水淡化生产建设项目建议书(立项报告)
- 苏教版一年级语文下册第三四单元测试
- 《我爱我的幼儿园》主题活动方案