为了账号安全,请及时绑定邮箱和手机立即绑定

当使用的字体不支持这种语言时,Label 控件如何正确显示日语字符?

当使用的字体不支持这种语言时,Label 控件如何正确显示日语字符?

C#
jeck猫 2021-11-07 20:04:04
我正在使用 .Net 4.5 作为目标框架的 Windows 窗体应用程序。我注意到的一件事是,如果我在Label控件上以日语显示文本,而Font标签(Arial)不支持日语字符,那么也Label可以成功显示这些字符。如果我在为它分配日语文本之前和之后检查标签的字体属性,它只显示“Arial”,所以字体可能没有动态变化。Label 具有哪些内部功能使其能够实现这一目标?
查看完整描述

1 回答

?
GCT1015

TA贡献1827条经验 获得超4个赞

关于字体回退
系统功能,绑定到国际字体管理。它会自动选择用户在应用程序中选择的字体以外的字体,以表示使用中的字体无法处理的字形。
另请参阅:国际字体枚举和选择

可以在系统注册表中找到一些预定义的字体替代品:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink

RichTextBox/RichEdit此处报告了与控件相关的示例和一些注释:
某些键更改了我的 RichTextBox 字体

创建控件时将EM_SETLANGOPTIONS设置为IMF_AUTOFONT选项。
预定义的行为,当当前字体无法显示 Unicode 子集时,它是一种自动字体回退。文本选择报告字体替代参考。

当默认映射不返回直接匹配时,可以使用Unicode 子集位域选择字体替代。

任何字体替换都与当前系统语言和可用的已安装字体有关。系统专门安装了许多字体来支持此功能。后备字体通常在系统字体存储库(\Windows\Fonts在 Windows 中)中标记为“隐藏” 。可以使用Show工具栏按钮或上下文菜单中的命令将这些标记为可用/可枚举。
Arial Unicode就是其中之一)。


查看完整回答
反对 回复 2021-11-07
  • 1 回答
  • 0 关注
  • 216 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信