WPF 加载外部字体
例如将字体放入d:/Fonts 文件夹。然后就可以通过类似
btn.FontFamily = new FontFamily("file:///d:/Fonts/#Ashley");的形式使用。
获取字体文件的字体名称:
string fontFilePath = "d:\\Fonts\\ygyxsziti2.0.ttf"; GlyphTypeface glyphTypeface = new GlyphTypeface(new Uri(fontFilePath,UriKind.RelativeOrAbsolute)); String fontFamily = glyphTypeface.Win32FamilyNames[new System.Globalization.CultureInfo("en-us")]; String fontFace = glyphTypeface.Win32FaceNames[new System.Globalization.CultureInfo("en-us")]; Console.WriteLine("Font: " + fontFamily + " " + fontFace);
完整代码:
string fontFilePath = "d:\\Fonts\\ygyxsziti2.0.ttf"; GlyphTypeface glyphTypeface = new GlyphTypeface(new Uri(fontFilePath,UriKind.RelativeOrAbsolute)); String fontFamily = glyphTypeface.Win32FamilyNames[new System.Globalization.CultureInfo("en-us")]; String fontFace = glyphTypeface.Win32FaceNames[new System.Globalization.CultureInfo("en-us")]; Console.WriteLine("Font: " + fontFamily + " " + fontFace); string fontFolerPath=System.IO.Path.GetDirectoryName(fontFilePath); string fontOK = "file:///" + fontFolerPath.Replace("\\\\", "/").Replace("\\", "/") + "/#" + fontFamily; btnFontColor.FontFamily = new FontFamily(fontOK); //btnFontColor.FontFamily= new FontFamily("file:///d:/Fonts/#叶根友毛笔行书2.0版");
另外获取字体名称的方法1:
using System.Drawing; using System.Drawing.Text;
您需要将字体添加到私有集合( PrivateFontCollection
),然后请求FontFamily
实例并获取其Name
属性。
像这样:
PrivateFontCollection fontCol = new PrivateFontCollection(); fontCol.AddFontFile(@"PATH TO FONT"); Console.WriteLine(fontCol.Families[0].Name);
另外获取字体名称的方法2:
foreach (FontFamily fontFamily in Fonts.GetFontFamilies("file:///D:/MyFonts/")) { string name = fontFamily .ToString().Split('#')[fontFamily .ToString().Split('#').Count() - 1]; }
fffffffffffffffff
test red font.