static GdiCanvas()
{
MeasurementImage = new Bitmap(1, 1);
var newGraphics = MeasurementGraphics = Graphics.FromImage(MeasurementImage);
newGraphics.SmoothingMode = SmoothingMode.HighQuality;
newGraphics.TextRenderingHint = TextRenderingHint.AntiAlias;
newGraphics.Clear(GdiColor.Transparent);
MusicFontFormat = new StringFormat(StringFormat.GenericTypographic)
{
LineAlignment = StringAlignment.Center,
Alignment = StringAlignment.Near
};
MusicFontCollection = new PrivateFontCollection();
using (var bravura = typeof(GdiCanvas).Assembly.GetManifestResourceStream(typeof(GdiCanvas), "Bravura.ttf"))
{
var dataPtr = Marshal.AllocCoTaskMem((int)bravura.Length);
try
{
var fontData = new byte[bravura.Length];
bravura.Read(fontData, 0, fontData.Length);
Marshal.Copy(fontData, 0, dataPtr, fontData.Length);
MusicFontCollection.AddMemoryFont(dataPtr, fontData.Length);
}
finally
{
Marshal.FreeCoTaskMem(dataPtr);
}
}
}