private static void EnsureFontLoaded()
{
if (_FontAwesome == null)
{
_PrivateFontCollection = new PrivateFontCollection();
byte[] fontAwesomeBuffer = BarFunctions.LoadFont("SystemImages.FontAwesome.ttf");
_FontAwesomeHandle = GCHandle.Alloc(fontAwesomeBuffer, GCHandleType.Pinned);
_PrivateFontCollection.AddMemoryFont(_FontAwesomeHandle.AddrOfPinnedObject(), fontAwesomeBuffer.Length);
uint rsxCnt = 1;
_FontAwesomePointer = AddFontMemResourceEx(_FontAwesomeHandle.AddrOfPinnedObject(),
(uint)fontAwesomeBuffer.Length, IntPtr.Zero, ref rsxCnt);
using (FontFamily ff = _PrivateFontCollection.Families[0])
{
if (ff.IsStyleAvailable(FontStyle.Regular))
{
_FontAwesome = new Font(ff, _FontAwesomeDefaultSize, FontStyle.Regular, GraphicsUnit.Point);
_FontAwesomeCache.Add(_FontAwesomeDefaultSize, _FontAwesome);
}
else
{
// Error use default font...
_FontAwesome = SystemInformation.MenuFont;
}
}
}
}