Silverlight 3 中“宋体”等中文字体的使用

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

 

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 默认不支持微软雅黑)

Silverlight 3 中“宋体”等中文字体的使用_第1张图片

 

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

Silverlight 3 中“宋体”等中文字体的使用_第2张图片

 

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

Silverlight 3 中“宋体”等中文字体的使用_第3张图片

你可能感兴趣的:(silverlight)