您现在的位置>>.Net中文社区>>Silverlight

Silverlight 中文字体的使用

浏览量: 作者:佚名 来源:互联网

此文只能解决静态文本显示问题,至于动态文本,看完这篇文章,再加上自己的摸索,相信你能想出来。先贴代码后贴图

MainPage.xaml

  1. <UserControl x:Class="Hongcing.Silverlight.Font.MainPage" 
  2.         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
  3.         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 
  4.     <StackPanel x:Name="LayoutRoot" Height="600" Width="800" Background="White"> 
  5.         <!--字体名称不能是“宋体”、“黑体”等,否则无效。--> 
  6.         <TextBox Text="洪星的博客-宋体-a1" FontFamily="Fonts/Fonts.zip#SimSun" FontSize="40" Margin="10" /> 
  7.         <TextBox Text="洪星的博客-黑体-b2" FontFamily="Fonts/Fonts.zip#SimHei" FontSize="40" Margin="10" /> 
  8.         <TextBox Text="洪星的博客-楷体-c3" FontFamily="Fonts/Fonts.zip#KaiTi" FontSize="40" Margin="10" /> 
  9.         <TextBox Text="洪星的博客-仿宋-d4" FontFamily="Fonts/Fonts.zip#FangSong" FontSize="40" Margin="10" /> 
  10.     </StackPanel> 
  11. </UserControl> 

项目文件关于字体的一段内容

  1. <ItemGroup> 
  2.     <BlendEmbeddedFont Include="Fonts\simsun.ttc"> 
  3.       <IsSystemFont>True</IsSystemFont> 
  4.       <All>False</All> 
  5.       <AutoFill>True</AutoFill> 
  6.       <Characters> 
  7.       </Characters> 
  8.       <Uppercase>False</Uppercase> 
  9.       <Lowercase>False</Lowercase> 
  10.       <Numbers>False</Numbers> 
  11.       <Punctuation>False</Punctuation> 
  12.     </BlendEmbeddedFont> 
  13.   </ItemGroup> 
  14.   <ItemGroup> 
  15.     <BlendEmbeddedFont Include="Fonts\simfang.ttf"> 
  16.       <IsSystemFont>True</IsSystemFont> 
  17.       <All>False</All> 
  18.       <AutoFill>True</AutoFill> 
  19.       <Characters> 
  20.       </Characters> 
  21.       <Uppercase>False</Uppercase> 
  22.       <Lowercase>False</Lowercase> 
  23.       <Numbers>False</Numbers> 
  24.       <Punctuation>False</Punctuation> 
  25.     </BlendEmbeddedFont> 
  26.   </ItemGroup> 
  27.   <ItemGroup> 
  28.     <BlendEmbeddedFont Include="Fonts\simhei.ttf"> 
  29.       <IsSystemFont>True</IsSystemFont> 
  30.       <All>False</All> 
  31.       <AutoFill>True</AutoFill> 
  32.       <Characters> 
  33.       </Characters> 
  34.       <Uppercase>False</Uppercase> 
  35.       <Lowercase>False</Lowercase> 
  36.       <Numbers>False</Numbers> 
  37.       <Punctuation>False</Punctuation> 
  38.     </BlendEmbeddedFont> 
  39.   </ItemGroup> 
  40.   <ItemGroup> 
  41.     <BlendEmbeddedFont Include="Fonts\simkai.ttf"> 
  42.       <IsSystemFont>True</IsSystemFont> 
  43.       <All>False</All> 
  44.       <AutoFill>True</AutoFill> 
  45.       <Characters> 
  46.       </Characters> 
  47.       <Uppercase>False</Uppercase> 
  48.       <Lowercase>False</Lowercase> 
  49.       <Numbers>False</Numbers> 
  50.       <Punctuation>False</Punctuation> 
  51.     </BlendEmbeddedFont> 
  52.   </ItemGroup> 
  53.   <ItemGroup> 
  54.     <BlendEmbeddedFont Include="Fonts\msyh.ttf"> 
  55.       <IsSystemFont>True</IsSystemFont> 
  56.       <All>False</All> 
  57.       <AutoFill>True</AutoFill> 
  58.       <Characters> 
  59.       </Characters> 
  60.       <Uppercase>False</Uppercase> 
  61.       <Lowercase>False</Lowercase> 
  62.       <Numbers>False</Numbers> 
  63.       <Punctuation>False</Punctuation> 
  64.     </BlendEmbeddedFont> 
  65.     <BlendEmbeddedFont Include="Fonts\msyhbd.ttf"> 
  66.       <IsSystemFont>True</IsSystemFont> 
  67.       <All>False</All> 
  68.       <AutoFill>True</AutoFill> 
  69.       <Characters> 
  70.       </Characters> 
  71.       <Uppercase>False</Uppercase> 
  72.       <Lowercase>False</Lowercase> 
  73.       <Numbers>False</Numbers> 
  74.       <Punctuation>False</Punctuation> 
  75.     </BlendEmbeddedFont> 
  76.   </ItemGroup> 

在 Microsoft Expression Blend 3 中的字体管理器选择需要的字体,一般不要对中文字体选择所有字形,否则 XAP 文件会很大。

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

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

本站部份资源来于互联网,只供学习之用,不得用于商业,如有侵犯版权请联系告知,本站将第一时间删除!
站长QQ:373638128 邮箱:navy1015@126.com
copyright © 2008 .Net中文社区 ASPXCS.NET™.All Rights Reserved 滇ICP备08102132号