C# Winform 中使用字體圖標


http://www.bubuko.com/infodetail-1923328.html

 

需要將 &#x 替換成 \u 最終是\ue603

 

 




 //使用方法
protected override void OnShown(EventArgs e) { base.OnShown(e); ImageFont.AddFontFile("./Properties/fonts/fontawesome-webfont.ttf"); toolStripButton1.Image = GetFontImage("\uf002", Color.Red,20); toolStripButton1.Text = "查詢"; toolStripButton1.Font = new Font(ImageFont.Families[0], 20); } //字體圖標生成圖標 public static Image GetFontImage(string fontIco, Color color, int size) { var bmp = new Bitmap(size, size); var g = Graphics.FromImage(bmp); g.TextRenderingHint = TextRenderingHint.AntiAliasGridFit; g.InterpolationMode = InterpolationMode.HighQualityBilinear; g.PixelOffsetMode = PixelOffsetMode.HighQuality; g.SmoothingMode = SmoothingMode.HighQuality; var ch = fontIco; var font = GetAdjustedFont(g, ch, size, size, 4, true); var stringSize = g.MeasureString(ch, font, size); float w = stringSize.Width; float h = stringSize.Height; float left = (size - w) / 2; float top = (size - h) / 2; // Draw string to screen. var brush = new SolidBrush(color); g.DrawString(ch, font, brush, new PointF(left, top)); return bmp; } private static Font GetAdjustedFont(Graphics g, string graphicString, int containerWidth, int maxFontSize, int minFontSize, bool smallestOnFail) { for (double adjustedSize = maxFontSize; adjustedSize >= minFontSize; adjustedSize = adjustedSize - 0.5) { Font testFont = GetIconFont((float)adjustedSize); SizeF adjustedSizeNew = g.MeasureString(graphicString, testFont); if (containerWidth > Convert.ToInt32(adjustedSizeNew.Width)) { return testFont; } } return GetIconFont(smallestOnFail ? minFontSize : maxFontSize); } private static Font GetIconFont(float size) { return new Font(ImageFont.Families[0], size, GraphicsUnit.Point); }
 
        

 







 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM