oxyplot 图表控件功能强大,使用很广泛。最近考虑到性能使用OxyPlot.SkiaSharp替代OxyPlot.WPF,曲线图表初步测试,性能提升近10倍左右。基于SkiaSharp图形引擎的一些控件常遇见中文乱码的问题,所以改用OxyPlot.SkiaSharp时也有心里准备。默认情况下中文显示真成了乱码。如下图所示。

于是翻了遍OxyPlot.SkiaSharp源码,看到PlotModel中的DefaultFont属性默认值是“Segoe UI”,西文无衬线体。试着改为“微软雅黑”,中文显示正常了。如下图所示。

OxyPlot.WPF中为什么显示没问题,将WPF中TextBlock字体改为ALGERIAN后,只有英文应用了该字体,而中文则是以另外一种字体显示的。如下图所示。

我们知道WPF的默认字体也是“Segoe UI”,为什么显示不会有问题呢,这就要提到WPF应用字体的机制了。

WPF应用程序使用属性FontFamily、FontStyle、FontWeight、FontStretch和FontSize来指定它想要的字体。在运行时,WPF会决定在应用程序运行的目标系统上使用准确的字体。这个决定是基于将前四个属性(暂时忽略FontSize)与该系统上安装的物理字体文件进行匹配。

WPF首先将提供的FontFamily与系统中找到的字体名称进行匹配。然后,它试图找到一个与所请求的FontStretch、FontStyle和FontWeight属性值最接近的字体。匹配FontStretch是最高优先级,其次是FontStyle,然后是FontWeight。

如果WPF找不到匹配的字体,它就会“退回”到与WPF一起安装的默认字体,即

C:\Windows\Fonts\GlobalUserInterface.CompositeFont

这是一种复合字体,它试图将单个字符映射到系统上可能存在的字体。也就是说中文和英文是分开映射到不同的字体上。

OxyPlot.SkiaSharp中文显示乱码的问题相关推荐

  1. PL/SQL 中文显示乱码解决方案

    为什么80%的码农都做不了架构师?>>>    PL/SQL 中文显示乱码: 1.修改注册表进行设置: HKEY_LOCAL_MACHINE->SOFTWARE->ORA ...

  2. oracle11g怎么显示中文,ORACLE11G中PLSQL中文显示乱码、Linux下sqlplus查询中文乱码

    问题描述: 本地是win7操作系统,cmd里面sqlplus进去连接oracle数据库,中文可以正常显示,但是plsql连接oracle数据库,中文显示乱码,还有xshell远程连接oracle服务器 ...

  3. Win7安装软件,界面上中文显示乱码的解决方案

    Win7安装软件,界面上中文显示乱码的解决方案 参考文章: (1)Win7安装软件,界面上中文显示乱码的解决方案 (2)https://www.cnblogs.com/heyang78/p/42588 ...

  4. Oralce Plsql 中文显示乱码问题无需修改注册表完美解决

    Oralce Plsql 中文显示乱码问题无需修改注册表完美解决 参考文章: (1)Oralce Plsql 中文显示乱码问题无需修改注册表完美解决 (2)https://www.cnblogs.co ...

  5. SSH,telnet终端中文显示乱码解决办法

    SSH,telnet终端中文显示乱码解决办法 vi /etc/sysconfig/i18n 将内容改为 LANG="zh_CN.GB18030" LANGUAGE="zh ...

  6. QT中文显示乱码解决

    问题如下: 1.中文显示乱码 2.数据库连接不上 问题一:但是如果我们的软件只运行在中文系统下,最简单的方法:在main函数中调用QTextCodec::setCodecForTr( QTextCod ...

  7. PLSQLDeveloper SQL查询内容中文显示乱码

    PLSQL Developer中文显示乱码是因为Oracle数据库所用的编码和PLSQL Developer所用的编码不同所导致的. 解决方法: 1,查询Oralce所用的编码 2,设置PLSQL 的 ...

  8. 服务器不能显示中文,彻底解决delphi WebBroker服务器中文乱码 delphi WebBroker服务器不能显示中文网页 WebBroker中文显示乱码...

    彻底解决delphi WebBroker服务器中文乱码 彻底解决WebBroker中文显示乱码 彻底解决delphi WebBroker服务器不能显示中文网页 这个问题被折腾惨啦! 网上一大堆,就没能 ...

  9. Linux中文显示乱码?如何设置centos显示中文

    怎么设置Linux系统中文语言,这是很多小伙伴在开始使用Linux的时候,都会遇到一个问题,就是终端输入命令回显的时候中文显示乱码.出现这个情况一般是由于没有安装中文语言包,或者设置的默认语言有问题导 ...

最新文章

  1. 编码 data:text/html;c,iOS 用TFHpple抓取GB-2312编码的html页面,页面返回编码错误
  2. java定时增量同步,一种可配置的定时数据同步方法与流程
  3. securecrt如何保存操作日志
  4. 如何提高英语听力(内容摘自NECCS)+ 乘法表
  5. 第二季1:图像基础知识
  6. Ajax-基础篇(持续更新01)
  7. 【算法精讲】分享一道很不错的算法题
  8. 巨量引擎2021食品饮料行业白皮书
  9. 精进不休 .NET 4.0 (2) - asp.net 4.0 新特性之url路由
  10. 修改了模板文件tpl如何立即生效_Python3操作Office之Word模板技术
  11. pandas获取最大值/最小值对应的index
  12. php的注入点,Php注入点构造代码
  13. PAAS平台7#215;24小时可用性应用设计
  14. Ubuntu GitHub操作——使用仓库
  15. 2年工作经验杂谈(java开发)
  16. 阿卡迪亚大学计算机专业好考吗,阿卡迪亚大学很烂吗
  17. 无线路由器wan口和lan口
  18. 使用java爬取国家统计局的12位行政区划代码
  19. 【综述】A Comprehensive Survey on Graph NeuralNetworks(4)
  20. Mysql-时间的存储 datetime还是时间戳timestamp?

热门文章

  1. MySQL 隐式转换 字符串和整型说明
  2. .net core MongoDB 初试
  3. Server.MapPath()的用法
  4. c#3.0关于JSON简单操作的实用帮助类(泛型实现)
  5. [转载MSDN]IIS 7.0中的Live Smooth Streaming -入门
  6. ZGY的Excel特征提取器初期版本完成
  7. 薛定谔的猫——.NET 4.1 中的新基类,开源Preview中
  8. datagrid 什么时候结束编辑_2020年中考结束后,什么时候出分?什么时候报志愿?...
  9. Teams中的快捷键让沟通协作更加高效
  10. 如何在Ubuntu上查看和写入系统日志文件