Использование шрифта из ресурса - C#
Формулировка задачи:
Можно ли добавить шрифт в ресурс, а после использовать его?
Что бы вместо
Было что-то вроде
гден шрифт в ресурсах - PLUMB-BO.PFM или PLUMB-BO.PFB?
public static Font text_data = new Font("Tahoma", 8, FontStyle.Regular);public static Font text_data = new Font(WindowsFormsApplication1.Properties.Resources.PLUMB-BO, 8, FontStyle.Regular);
Решение задачи: «Использование шрифта из ресурса»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Text;
using System.Resources;
using System.Reflection;
using System.Runtime.InteropServices;
namespace FontTest
{
public partial class Form1 : Form
{
[DllImport("gdi32.dll")]
private static extern IntPtr AddFontMemResourceEx(IntPtr pbFont, uint cbFont,
IntPtr pdv, [In] ref uint pcFonts);
public Form1()
{
InitializeComponent();
PrivateFontCollection pfc = new PrivateFontCollection();
byte[] crysta = Properties.Resources.Crysta;
unsafe
{
fixed (Byte* pFontData = crysta)
{
pfc.AddMemoryFont((IntPtr)pFontData, crysta.Length);
uint InstallCount = 1;
AddFontMemResourceEx((IntPtr)pFontData, (uint)crysta.Length, IntPtr.Zero, ref InstallCount);
}
}
label1.Font = new Font(pfc.Families[0], 14, FontStyle.Italic);
}
}
}