c#中诺托无字体支持韩文的方法

  介绍

小编给大家分享一下c#中诺托无字体支持韩文的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!

<强> 1,源起:

VCU10项目,使用了诺托无字体,的确漂亮。但验证在这个主题下,其显示韩文为乱码,颇为头痛。

其界面显示如图:

 c #中诺托无字体支持韩文的方法

度娘之,得能登Sans又有CJK字体,顾名思义,其为支持中日韩文,且其体积巨大,不宜做为方案,继续思考!

<强> 2,字体。GdiCharSet属性

也是没有办法,看在目前基础上,能不能解决问题?程序多国语言需支持。

就从字体本身属性开始检查吧,验证发现,改其字符集GdiCharSet,可正常显示韩文,解决方案有了!

查阅资料得知,字体GdiCharSet可有如下值:

验证比如东欧,波罗的海等字符集,可以正常显示韩文,而不影响其默认字符集显示效果,于是,决定替换其字符集。

<强> 3,替换

项目界面已设定字体,且界面众多,一个一个改当然不够方便,写代码批量处理吧!

在每个窗体,或每个用户控件中,调用一下UpdateNotoSansCharset()数,就统一替换了。

,,,,,,,,//处理标签字体,以能在这个主题下,NotoSans字体能显示韩文public  static  void  UpdateNotoSansCharset (Form 形式)   ,,,,,,,{if  (OSUtils.OSVersion 祝辞,FriendlyOSVersion.Win7)返回;foreach  (Control  ctrl  form.Controls拷贝)   ,,,,,,,,,,,,,,,UpdateNotoSansCharset (ctrl);   ,,,,,,,}public  static  void  UpdateNotoSansCharset (ScrollableControl 父母)   ,,,,,,,{if  (OSUtils.OSVersion 祝辞,FriendlyOSVersion.Win7)返回;foreach  (Control  ctrl  parent.Controls拷贝)   ,,,,,,,,,,,,,,,UpdateNotoSansCharset (ctrl);   ,,,,,,,}public  static  void  UpdateNotoSansCharset (GControl  ctrl)   ,,,,,,,{if  (ctrl  is  ScrollableControl)   ,,,,,,,,,,,,,,,UpdateNotoSansCharset (ctrl  as  ScrollableControl); else  if  (ctrl  is 标签)   ,,,,,,,,,,,{//字符集采用中欧字符集var  font =, new 字体(ctrl.Font.Size, ctrl.Font.FontFamily,还以为,ctrl.Font.Style, ctrl.Font.Unit,, 238);   ,,,,,,,,,,,,,,,ctrl.Font =,字体;   ,,,,,,,,,,,}   ,,,,,,,}

<强> 4,效果

好的,难题解决,非常完美:

以上是“c #中诺托无字体支持韩文的方法”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

c#中诺托无字体支持韩文的方法