这是您取得所有字型系列清单的方式:
List<string> fonts = new List<string>(); foreach (FontFamily font in FontFamily.Families) { fonts.Add(font.Name); }
字符串我的网站让用户用自己的语言来写文字。让用户选择阿拉伯语/希伯来语,我只想给他显示字体家族列表。例如:'漫画无MS'不支持阿拉伯语/希伯来语。谢谢.
j2qf4p5b1#
此代码验证给定字体是否包含指定语言(如希伯来语或阿拉伯语)的Unicode范围内的至少一个字符。请注意,如果至少存在一个希伯来语字符,则函数返回true,而不确认对所有语言字符的支持。此外,函数不会检查希伯来语或阿拉伯语字符中的“Nikod”(Nikod)。
bool IsFontSupportsHebrew(string fontName) { // Define the Unicode range for Hebrew characters int hebrewStart = 0x0590; int hebrewEnd = 0x05FF; Typeface typeface = new Typeface(new FontFamily(fontName), FontStyles.Normal, FontWeights.Normal, FontStretches.Normal); GlyphTypeface glyphTypeface; if (typeface.TryGetGlyphTypeface(out glyphTypeface)) { IDictionary<int, ushort> characterToGlyphMap = glyphTypeface.CharacterToGlyphMap; return characterToGlyphMap.Keys.Any(unicodeValue => unicodeValue >= hebrewStart && unicodeValue <= hebrewEnd); } else { return false; Console.WriteLine($"Unable to retrieve GlyphTypeface for {fontName}"); } }
字符串如果您想更改为阿拉伯字符,则应更改或调整Unicode范围,使其从0x0600到0x06FF。
1条答案
按热度按时间j2qf4p5b1#
此代码验证给定字体是否包含指定语言(如希伯来语或阿拉伯语)的Unicode范围内的至少一个字符。请注意,如果至少存在一个希伯来语字符,则函数返回true,而不确认对所有语言字符的支持。此外,函数不会检查希伯来语或阿拉伯语字符中的“Nikod”(Nikod)。
字符串
如果您想更改为阿拉伯字符,则应更改或调整Unicode范围,使其从0x0600到0x06FF。