几年前,我创建了一个已经成功部署的WinForms应用程序。应用程序的下一个版本必须支持中文和韩文字符。出于美观的原因,我的客户希望应用程序中的所有文本都以Arial字体家族显示。
但是,Arial不支持中文和韩文字符。在大多数平台上,Windows Uniscribe Font Fallback机制充分选择了一种字体来显示东亚字符。但在英文版的Windows XP上,它选择的字体很糟糕。
我一直在考虑用Font Linking来解决这个问题。这将允许我指定当Arial无法显示字符时应该使用哪种字体。这似乎是一个非常优雅的解决方案。
问题是,我链接的那篇文章说,通过注册表添加字体链接不是官方支持的。此外,更改注册表中的字体链接将影响整个计算机,而不仅仅是我的应用程序。
有没有人有添加字体链接的经验?它成功了吗?以后会咬我的情况是什么?
发布于 2009-12-03 05:50:46
链接文章中的“不支持”子句告诉你,你不能打电话给微软支持部门并抱怨,因为你不正确地使用了Regedit.exe,把机器搞得一团糟。它并不是说不支持字体链接。
这样做并不能真正对另一个程序产生负面影响。字体链接不会替换字形,只会替换缺少的字形。这样的程序以前不能正确地呈现文本。完成后,它将显示可读的文本。他们会请你吃顿丰盛的晚餐和几个跳舞的女孩。
发布于 2009-12-03 04:14:58
你能使用Arial Unicode MS字体吗?
这就是我用来在图表和PDF中显示中文字体的地方。
发布于 2009-12-11 12:20:26
因此,问题是,如果字符与某些条件匹配,则使用一种字体,如果字符不匹配,则使用另一种字体,对吧?
那么,为什么不编写一些代码,当文本更新时,检查条件并适当设置字体呢?这可能有点忙,但如果到处都做了,我打赌你可以把它封装在一个自定义控件中。
有时候,只做这项工作要比尝试用一堆系统设置变得聪明容易得多。诚然,没有那么有趣,但不太可能造成问题。
https://stackoverflow.com/questions/1835105
复制相似问题