您好,登錄后才能下訂單哦!
這篇文章主要講解了“如何解決OxyPlot.SkiaSharp中文顯示亂碼的問題”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“如何解決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
這是一種復合字體,它試圖將單個字符映射到系統上可能存在的字體。也就是說中文和英文是分開映射到不同的字體上。
感謝各位的閱讀,以上就是“如何解決OxyPlot.SkiaSharp中文顯示亂碼的問題”的內容了,經過本文的學習后,相信大家對如何解決OxyPlot.SkiaSharp中文顯示亂碼的問題這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。