silverlight   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了silverlight 中文字体问题 解决字体粗细不均,字体花的问题大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

silverlight中的字体问题  解决字体花的问题 问题描述: 在Silverlight中显示中文时默认为微软雅黑,11号字体,但是在11号字体在有的机器上显示很花,粗细不一致。 解决方法: 第一种:在每个窗体中更目录中设置字体为12号 第二种:修改字体为宋体或其他可以字体,此种解决方法可以参此篇博客   http://www.cnblogs.com/wallis0922/archive/2

silverlight中的字体问题  解决字体花的问题
问题描述: 在Silverlight中显示中文认为微软雅黑,11号字体,但是在11号字体在有的机器上显示很花,粗细不一致。

解决方法

第一种:在每个窗体中更目录中设置字体为12号

第二种:修改字体为宋体或其他可以字体,此种解决方法可以参此篇博客

 

http://www.cnblogs.com/wallis0922/archive/2010/10/14/1851791.html

问题描述

在Silverlight程序中,对文字设置了中文字体之后不起任何作用。

问题分析

Silverlight内置了十几种常见拉丁字体,如Arial,Comic Sans MS,Courier New,Lucida Sans Unicode等。认使用的字体是Portable User Interface。这是一种复合字体,Silverlight会根据文字的语言选择最佳的字体。但是,这种字体通常在显示中文的时候非常难看。下图是认的显示效果

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帮我自动完成这个操作。

silverlight 中文字体问题 解决字体粗细不均,字体花的问题

选中一种字体之后,勾选字体面板下面的Embed复选框即可将指定字体打包到Silverlight工程中去。这个时候工程中自动生成了Fonts文件夹,里面放置了宋体这个字体文件

silverlight 中文字体问题 解决字体粗细不均,字体花的问题

同时,Xaml也发生了变化,由引用系统的宋体改成引用Fonts.zip包中的宋体了。如下:

<Grid x:Name="LayoutRoot" BACkground="White">    <TextBlock Text="Hello,测试中英文混合显示效果" FontSize="26" FontFamily="Fonts/Fonts.zip#宋体"/></Grid>

运行结果发现字体依旧。

后来查阅Silverlight官方文档的时候,看到字体列表一节时,突然想到,是不是因为字体名不规范?不能直接使用“宋体”,而应该使用Simsun。赶紧测试了一下,发现果然是这个问题。只需将上面两个示例代码中的宋体改成Simsun即可正确显示出宋体的效果来。

silverlight 中文字体问题 解决字体粗细不均,字体花的问题

后来又测试了一下其它中文字体,如微软雅黑,如果直接这样写中文的话是显示不出来的,一定要写“MIcrosoft YaHei”。可恶的Blend,帮我自动生成代码居然有这种莫名其妙的错。不知道这算是Silverlight和Blend的Bug还是设计使然。

在Silverlight中,如果要引用字体,一定不能直接写上中文,否则不起任何作用。如果你是在英文操作系统下的话,你可以打开字体文件(C:/windows/fonts文件夹下,Silverlight支持ttf,odttf和otf这几种后缀的字体文件),其中的字体名称一栏就是FontFamily所使用的名称。只是在中文操作系统下,支持中文的字体在这里显示中文名,而不是英文名。

silverlight 中文字体问题 解决字体粗细不均,字体花的问题

常见中文字体名和英文字体名的对应关系如下:

@H_194_197@宋体(英文不等宽) @H_194_197@宋体(英文等宽) @H_194_197@楷体 @H_194_197@黑体 @H_194_197@仿宋 @H_194_197@微软正黑体 @H_984_199@microsoft JhengHei @H_194_197@细明体 @H_984_199@mingLiu @H_194_197@微软雅黑 @H_984_199@microsoft YaHei @H_194_197@隶书 @H_194_197@华文彩云 @H_194_197@华文琥珀 @H_194_197@华文隶书 @H_194_197@华文新魏 @H_194_197@华文行楷 @H_194_197@幼圆
常见中文字体与FontFamily映射表
Simsun
NSimsun
KaiTi
SimHei
FangSong
LiSu(只能打包,不支持本地系统引用)
STCaiyun(只能打包,不支持本地系统引用)
STHupo(只能打包,不支持本地系统引用)
STLiti(只能打包,不支持本地系统引用)
STXinwei(只能打包,不支持本地系统引用)
STXingKai(只能打包,不支持本地系统引用)
YouYuan(只能打包,不支持本地系统引用)

大佬总结

以上是大佬教程为你收集整理的silverlight 中文字体问题 解决字体粗细不均,字体花的问题全部内容,希望文章能够帮你解决silverlight 中文字体问题 解决字体粗细不均,字体花的问题所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。