WPF 引用字体资源
2021-03-09 01:30
标签:foreach tor 文件查看 specific value sources nta uri fonts 把一个名为“ChineseCharacterSpecialFont.ttf”的ttf文件,放在WpfApp2工程下。引用方式如下: 注意:引用字体,与字体文件的名称无关,只能引用字体类型名称。 #后面表示字体类型名称,可以通过双击打开ttf文件查看: 将一个名为“ChineseCharacterSpecialFont.ttf”的ttf文件,放在桌面路径,后台引用方式如下: var ttfFilePath = @"C:\Users\user\Desktop\"; 路径Uri只需要文件夹就行了,后面一个参数family为 “./#指定字体类型名称“。 注意:路径Uri不能为ttf文件完整路径;参数family中不能少了./#任何一个特殊字符。否则界面显示的字,就不是指定字体中的字符显示了。 本地已安装的字体,可以通过Fonts.SystemFontFamilies获取。 Xaml字体就不用说了。后台设置字体类型,可以通过: 系统字体FontFamily数据,Source名称是英文的。怎么通过中文名称获取相应字体? FamilyNames为一个含有多语言项的字典,Key为语言项,Value为字体类型名称。 WPF 引用字体资源 标签:foreach tor 文件查看 specific value sources nta uri fonts 原文地址:https://www.cnblogs.com/kybs0/p/12766584.html外部字体文件
1.WPF-Xaml资源引用
1
2.后台代码引用字体
HanziTextBlock.FontFamily = new System.Windows.Media.FontFamily(new Uri(ttfFilePath), "./#楷体_GB2312");本地安装字体文件
1 var systemFontFamilies = Fonts.SystemFontFamilies;
2 var songTiFamily = systemFontFamilies.FirstOrDefault(i=>i.Source=="KaiTi");
3 HanziTextBlock.FontFamily = songTiFamily;
1 var systemFontFamilies = Fonts.SystemFontFamilies;
2 FontFamily filteredChineseFamily = null;
3 foreach (FontFamily family in systemFontFamilies)
4 {
5 LanguageSpecificStringDictionary familyNames = family.FamilyNames;
6 if (familyNames.ContainsKey(XmlLanguage.GetLanguage("zh-cn")))
7 {
8 if (familyNames.TryGetValue(XmlLanguage.GetLanguage("zh-cn"), out var chineseFontName)&&chineseFontName=="楷体")
9 {
10 filteredChineseFamily = family;
11 break;
12 }
13 }
14 }
15 HanziTextBlock.FontFamily = filteredChineseFamily;
下一篇:C# 继承