弹来弹去跑马灯!

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]; } 

  

posted @ 2023-02-12 20:09  wgscd  阅读(304)  评论(0)    收藏  举报