From 207f80f744ff4ea9ffa77fb24129d961c90eadaf Mon Sep 17 00:00:00 2001 From: Minjoraia Date: Mon, 1 Sep 2025 15:41:20 +0200 Subject: [PATCH] fix FontFamilyAdapter to respect system locale. Fix unhandled exception at dict lookup --- .../Adapters/FontFamilyAdapter.cs | 25 ++++--------------- 1 file changed, 5 insertions(+), 20 deletions(-) diff --git a/Source/HtmlRenderer.WPF/Adapters/FontFamilyAdapter.cs b/Source/HtmlRenderer.WPF/Adapters/FontFamilyAdapter.cs index a3ec7734d..a517ad5ec 100644 --- a/Source/HtmlRenderer.WPF/Adapters/FontFamilyAdapter.cs +++ b/Source/HtmlRenderer.WPF/Adapters/FontFamilyAdapter.cs @@ -10,6 +10,8 @@ // - Sun Tsu, // "The Art of War" +using System.Globalization; +using System.Linq; using System.Windows.Markup; using System.Windows.Media; using TheArtOfDev.HtmlRenderer.Adapters; @@ -24,7 +26,7 @@ internal sealed class FontFamilyAdapter : RFontFamily /// /// Default language to get font family name by /// - private static readonly XmlLanguage _xmlLanguage = XmlLanguage.GetLanguage("en-us"); + private static readonly XmlLanguage _xmlLanguage = XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag); /// /// the underline win-forms font. @@ -42,25 +44,8 @@ public FontFamilyAdapter(FontFamily fontFamily) /// /// the underline WPF font family. /// - public FontFamily FontFamily - { - get { return _fontFamily; } - } + public FontFamily FontFamily => _fontFamily; - public override string Name - { - get - { - string name = _fontFamily.FamilyNames[_xmlLanguage]; - if (string.IsNullOrEmpty(name)) - { - foreach (var familyName in _fontFamily.FamilyNames) - { - return familyName.Value; - } - } - return name; - } - } + public override string Name => _fontFamily.FamilyNames.TryGetValue(_xmlLanguage, out var name) ? name : _fontFamily.FamilyNames.FirstOrDefault().Value; } } \ No newline at end of file