我正在开发一个Windows窗体应用程序,以.Net 4.5作为目标框架。我注意到一件事,如果我在Label控件上显示日语文本,而标签(Arial)的Font不支持日语字符,那么Label也可以成功显示这些字符。如果我在给标签分配日文文本之前和之后检查标签的字体属性,它只显示“Arial”,所以字体可能不会动态变化。Label有什么内部功能使其能够实现这一点?
Label
Font
dldeef671#
关于字体回退
系统功能,绑定到International Font Management。它自动选择除用户在应用程序中选择的字体以外的字体,以表示正在使用的字体无法处理的字形。标签:International Font Enumeration and Selection可以在系统注册表中找到预定义字体替代选项:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink
字符串此处报告了与RichTextBox/RichEdit控制相关的示例和一些注意事项:某些键更改RichTextBox字体RichTextBox控件是通过将EM_SETLANGOPTIONS设置为IMF_AUTOFONT选项创建的。预定义的行为,当当前字体无法显示Unicode子集时,它是自动字体回退。文本选择报告字体替换引用。当默认Map不返回直接匹配时,可以使用Unicode Subset Bitfields选择字体替代。任何字体替换都与当前系统语言和可用的已安装字体有关。系统会安装许多字体来支持此功能。后备字体通常在系统字体库中标记为“隐藏”(Windows中为\Windows\Fonts)。可以使用工具栏按钮或上下文菜单中的Show命令将它们标记为可用/可枚举。(Arial Unicode就在其中)。参见:International Fonts and Text Display的About Multilingual User InterfaceUsing Font Fallback字符串Uniscribe
RichTextBox/RichEdit
RichTextBox
\Windows\Fonts
Show
Arial Unicode
1条答案
按热度按时间dldeef671#
关于字体回退
系统功能,绑定到International Font Management。它自动选择除用户在应用程序中选择的字体以外的字体,以表示正在使用的字体无法处理的字形。
标签:International Font Enumeration and Selection
可以在系统注册表中找到预定义字体替代选项:
字符串
此处报告了与
RichTextBox/RichEdit
控制相关的示例和一些注意事项:某些键更改RichTextBox字体
RichTextBox
控件是通过将EM_SETLANGOPTIONS设置为IMF_AUTOFONT选项创建的。预定义的行为,当当前字体无法显示Unicode子集时,它是自动字体回退。文本选择报告字体替换引用。
当默认Map不返回直接匹配时,可以使用Unicode Subset Bitfields选择字体替代。
任何字体替换都与当前系统语言和可用的已安装字体有关。系统会安装许多字体来支持此功能。后备字体通常在系统字体库中标记为“隐藏”(Windows中为
\Windows\Fonts
)。可以使用工具栏按钮或上下文菜单中的Show
命令将它们标记为可用/可枚举。(
Arial Unicode
就在其中)。参见:
International Fonts and Text Display的
About Multilingual User Interface
Using Font Fallback字符串
Uniscribe