弹来弹去跑马灯!

WPF 加载外部字体

例如将字体放入d:/Fonts 文件夹。然后就可以通过类似 btn.FontFamily = new FontFamily("file:///d:/Fonts/#Ashley");的形式使用。

获取字体文件的字体名称:

1
2
3
4
5
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);

完整代码:

1
2
3
4
5
6
7
8
9
10
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:

1
foreach (FontFamily fontFamily in Fonts.GetFontFamilies("file:///D:/MyFonts/")) { string name = fontFamily .ToString().Split('#')[fontFamily .ToString().Split('#').Count() - 1]; }

  

posted @   wgscd  阅读(247)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示