天津科技公司网站,陕西省建设工会网站,校园网站建设的必要性论文,广州网站建设制作公司oxyplot 图表控件功能强大#xff0c;使用很广泛。最近考虑到性能使用OxyPlot.SkiaSharp替代OxyPlot.WPF#xff0c;曲线图表初步测试#xff0c;性能提升近10倍左右。基于SkiaSharp图形引擎的一些控件常遇见中文乱码的问题#xff0c;所以改用OxyPlot.SkiaSharp时也有心里… 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
这是一种复合字体它试图将单个字符映射到系统上可能存在的字体。也就是说中文和英文是分开映射到不同的字体上。