洪星的博客(原创版,新闻除外)

信息技术 软件开发 电信 移动通信(欢迎和我交流:QQ219402,15152399197)

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  12 随笔 :: 0 文章 :: 62 评论 :: 0 引用

先贴代码、后贴图,相信不需要说太多。此文只能解决静态文本显示问题,至于动态文本,看完这篇文章,再加上自己的摸索,相信你能想出来。当然如有不明白可以和我交流。同时说明我也是初学者,学习时间按天计算。

 

MainPage.xaml
<UserControl x:Class="Hongcing.Silverlight.Font.MainPage"
xmlns
="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x
="http://schemas.microsoft.com/winfx/2006/xaml">
<StackPanel>
<!--不能直接使用“宋体”、“黑体”等中文字体名称,否则无效。-->
<TextBox Text="洪星的博客-Aa1-默认字体" FontSize="36" Margin="10" />
<TextBox Text="洪星的博客-Bb2-微软雅黑" FontFamily="Fonts/Fonts.zip#Microsoft YaHei" FontSize="36" Margin="10" />
<TextBox Text="洪星的博客-Cc3-黑体" FontFamily="SimHei" FontSize="36" Margin="10" />
<TextBox Text="洪星的博客-Dd4-宋体" FontFamily="SimSun" FontSize="36" Margin="10" />
<TextBox Text="洪星的博客-Ee5-新宋体" FontFamily="NSimSun" FontSize="36" Margin="10" />
<TextBox Text="洪星的博客-Ff6-仿宋" FontFamily="Fonts/Fonts.zip#FangSong" FontSize="36" Margin="10" />
<TextBox Text="洪星的博客-Gg7-楷体" FontFamily="Fonts/Fonts.zip#KaiTi" FontSize="36" Margin="10" />
</StackPanel>
</UserControl>

 

 Silverlight 3 字体测试,在 Windows XP 中微软雅黑也能直接显示,仿宋、楷体也能显示。

 http://www.hongcing.com/Tool/Silverlight3Font

 

项目文件关于字体的一段内容
<ItemGroup>
<BlendEmbeddedFont Include="Fonts\simsun.ttc">
<IsSystemFont>True</IsSystemFont>
<All>False</All>
<AutoFill>True</AutoFill>
<Characters>
</Characters>
<Uppercase>False</Uppercase>
<Lowercase>False</Lowercase>
<Numbers>False</Numbers>
<Punctuation>False</Punctuation>
</BlendEmbeddedFont>
</ItemGroup>
<ItemGroup>
<BlendEmbeddedFont Include="Fonts\simfang.ttf">
<IsSystemFont>True</IsSystemFont>
<All>False</All>
<AutoFill>True</AutoFill>
<Characters>
</Characters>
<Uppercase>False</Uppercase>
<Lowercase>False</Lowercase>
<Numbers>False</Numbers>
<Punctuation>False</Punctuation>
</BlendEmbeddedFont>
</ItemGroup>
<ItemGroup>
<BlendEmbeddedFont Include="Fonts\simhei.ttf">
<IsSystemFont>True</IsSystemFont>
<All>False</All>
<AutoFill>True</AutoFill>
<Characters>
</Characters>
<Uppercase>False</Uppercase>
<Lowercase>False</Lowercase>
<Numbers>False</Numbers>
<Punctuation>False</Punctuation>
</BlendEmbeddedFont>
</ItemGroup>
<ItemGroup>
<BlendEmbeddedFont Include="Fonts\simkai.ttf">
<IsSystemFont>True</IsSystemFont>
<All>False</All>
<AutoFill>True</AutoFill>
<Characters>
</Characters>
<Uppercase>False</Uppercase>
<Lowercase>False</Lowercase>
<Numbers>False</Numbers>
<Punctuation>False</Punctuation>
</BlendEmbeddedFont>
</ItemGroup>
<ItemGroup>
<BlendEmbeddedFont Include="Fonts\msyh.ttf">
<IsSystemFont>True</IsSystemFont>
<All>False</All>
<AutoFill>True</AutoFill>
<Characters>
</Characters>
<Uppercase>False</Uppercase>
<Lowercase>False</Lowercase>
<Numbers>False</Numbers>
<Punctuation>False</Punctuation>
</BlendEmbeddedFont>
<BlendEmbeddedFont Include="Fonts\msyhbd.ttf">
<IsSystemFont>True</IsSystemFont>
<All>False</All>
<AutoFill>True</AutoFill>
<Characters>
</Characters>
<Uppercase>False</Uppercase>
<Lowercase>False</Lowercase>
<Numbers>False</Numbers>
<Punctuation>False</Punctuation>
</BlendEmbeddedFont>
</ItemGroup>

 

在 Microsoft Expression Blend 3 中的字体管理器选择需要嵌入的字体,一般不要对中文字体选择所有字形,否则 XAP 文件会很大。(选择客户端可能不支持的字体,例如 Window XP 默认不支持微软雅黑)

 

字体的子集被打包到程序集资源中

 

程序集资源中的字体子集(就是打包在上面的 fonts/fonts.zip),是不是比较小阿,还是 ZIP 压缩的,XAML 使用的字体名也在这里可以看到。(这里顺便表扬一下 7Z,确实比较牛 B)

我的博客:http://www.cnblogs.com/hongcing
我的签名:
posted on 2010-02-02 17:49 洪星 阅读(1441) 评论(5) 编辑 收藏

评论

尊敬的作者您好:

您的
"Silverlight 3 中“宋体”等中文字体的使用"文章已经被银光中国网(SilverlightChina.Net)转载收录,我们在文章明显位置标识您的原创版权信息,如果您对转载有异议,请您联系admin@silverlightchina.net,我们会及时回复。

感谢您提供优秀的Silverlight系列文章。

您的文章地址:http://silverlightchina.net/html/tips/2010/0202/658.html


银光中文网
 回复 引用 查看   

#2楼 2010-02-03 14:47 刘点点.Earan      
不建议这样做,会无端增大Xap大小。

一般的计算机种都有宋体,所以只需要将MainPage的FontFamily设置为"SimSun"即可。
 回复 引用 查看   

#3楼 2010-02-03 15:08 dino623      
@刘点点.Earan
嗯,宋体和其他几个默认的字体就够用了。
对了,上次你给我的网站我自己没时间看,反而是公司里的其他人看了。
 回复 引用 查看   

#4楼[楼主] 2010-02-03 16:37 洪星      
@刘点点.Earan
回应 2 楼的,宋体、黑体,直接用 FontFamily="SimSun"、FontFamily="SimHei" 没有大问题,问题在仿宋和楷体,FontFamily="KaiTi"、FontFamily="FangSong" 在 XP 系统不显示为楷体、仿宋的字体,FontFamily="KaiTi_GB2312"、FontFamily="KaiTi_GB2312" 在 Vista/7/2008 系统也不显示为楷体、仿宋的字体,自行安装字体除外。
 回复 引用 查看   

#5楼 2010-02-03 16:39 小军2010      
引用silverlightchina:
尊敬的作者您好:

您的
"Silverlight 3 中“宋体”等中文字体的使用"文章已经被银光中国网(SilverlightChina.Net)转载收录,我们在文章明显位置标识您的原创版权信息,如果您对转载有异议,请您联系admin@silverlightchina.net,我们会及时回复。

感谢您提供优秀的Silverlight系列文章。

您的文章地址:http://silverlightchina.net/html/tips/2010/0202/658.html


银光中文网

 回复 引用 查看