C# WPF 获取计算机已安装字体名称

        因字体文件可能存在多种语言,故此按照“简体中文->繁体中文->其它语言”优先顺序获取字体名称。

        如某个字体文件存在“zh-cn”、“zh-hk”、“zh-tw”、“en-us”四种语言,那么仅获取“zh-cn”名称。

private System.Collections.Generic.List<string> GetFontsName()
{
    System.Collections.Generic.List<string> fontName = new System.Collections.Generic.List<string>();
    foreach (System.Windows.Media.FontFamily fontFamily in System.Windows.Media.Fonts.SystemFontFamilies)
    {
        if (fontFamily.FamilyNames.Keys.Contains(System.Windows.Markup.XmlLanguage.GetLanguage("zh-cn")))
            fontName.Add(fontFamily.FamilyNames[System.Windows.Markup.XmlLanguage.GetLanguage("zh-cn")]);
        else if (fontFamily.FamilyNames.Keys.Contains(System.Windows.Markup.XmlLanguage.GetLanguage("zh-hk")))
            fontName.Add(fontFamily.FamilyNames[System.Windows.Markup.XmlLanguage.GetLanguage("zh-hk")]);
        else if (fontFamily.FamilyNames.Keys.Contains(System.Windows.Markup.XmlLanguage.GetLanguage("zh-tw")))
            fontName.Add(fontFamily.FamilyNames[System.Windows.Markup.XmlLanguage.GetLanguage("zh-tw")]);
        else
            foreach (System.Windows.Markup.XmlLanguage xmlLanguage in fontFamily.FamilyNames.Keys)
                fontName.Add(fontFamily.FamilyNames[xmlLanguage]);
    }
    fontName.Sort(System.StringComparer.CurrentCulture);
    return fontName;
}

         仅获取本地语言字体。

private System.Collections.Generic.List<string> GetFontsName()
{
    System.Collections.Generic.List<string> fontName = new System.Collections.Generic.List<string>();
    foreach (System.Windows.Media.FontFamily fontFamily in System.Windows.Media.Fonts.SystemFontFamilies)
    {
        if (fontFamily.FamilyNames.Keys.Contains(System.Windows.Markup.XmlLanguage.GetLanguage(System.Globalization.CultureInfo.CurrentCulture.Name.ToLower())))
            fontName.Add(fontFamily.FamilyNames[System.Windows.Markup.XmlLanguage.GetLanguage(System.Globalization.CultureInfo.CurrentCulture.Name.ToLower())]);
    }
    fontName.Sort(System.StringComparer.CurrentCulture);
    return fontName;
}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值