-1
嵌入資源字體不上的控件正常工作正常工作。
但它可以被Graphics對象使用繪製的東西。
首先,嵌入式資源添加
fontawesome-webfont.ttf
字體文件。然後,從程序集資源中獲取字體。
接下來,將font屬性分配給控件。
代碼在這裏:
using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Text;
using System.IO;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Windows.Forms;
namespace Sample
{
public partial class FormSample : Form
{
PrivateFontCollection pfc;
Font font ;
public FormSample()
{
InitializeComponent();
pfc = LoadFontFromResource("Sample.assets.fontawesome-webfont.ttf");
font = new Font(pfc.Families[0], 16, FontStyle.Regular);
this.textBoxControl1.Text = "\uf028 fontawesome";
this.label1.Text = "\uf028 fontawesome";
this.label1.ForeColor = Color.Green;
this.textBoxControl1.ForeColor = Color.Green;
this.label1.Font = font;
this.textBoxControl1.Font = font;
}
private void button1_Click(object sender, EventArgs e)
{
this.label1.Font = font;
this.textBoxControl1.Font = font;
Graphics g = this.CreateGraphics();
g.TextRenderingHint = TextRenderingHint.AntiAliasGridFit;
g.InterpolationMode = InterpolationMode.HighQualityBilinear;
g.PixelOffsetMode = PixelOffsetMode.HighQuality;
g.SmoothingMode = SmoothingMode.HighQuality;
g.DrawString("\uf028 fontawesome(GDI+)", font, new SolidBrush(Color.Green), new Point(this.label1.Location.X+10, 80));
g.Dispose();
}
/// <summary>
/// Loads the font from resource.
/// </summary>
/// <param name="name">The name.</param>
/// <returns>PrivateFontCollection.</returns>
public static PrivateFontCollection LoadFontFromResource(string name)
{
PrivateFontCollection pfc = new PrivateFontCollection();
Assembly assembly = Assembly.GetExecutingAssembly();
using (Stream stream = assembly.GetManifestResourceStream(name))
{
if (stream == null) return null;
byte[] fontData = new byte[stream.Length];
stream.Read(fontData, 0, (int)stream.Length);
IntPtr ptr = Marshal.AllocHGlobal(fontData.Length);
Marshal.Copy(fontData, 0, ptr, fontData.Length);
pfc.AddMemoryFont(ptr, fontData.Length);
return pfc;
}
}
}
}
你可以發佈此表單的相關代碼嗎?並解釋到底哪些工作不正常? –