0
Мне нужно иметь возможность рисовать пользовательские шрифты в CGContext, но когда я изменяю способ выбора шрифта, шрифт не отображается.Рендеринг пользовательских шрифтов с использованием MonoTouch & CoreGraphics
//Works
protected void DrawCenteredTextAtPoint(CGContext context, float centerX, float y, string text, int textHeight)
{
context.SelectFont("Helvetica-Bold", textHeight, CGTextEncoding.MacRoman);
context.SetTextDrawingMode(CGTextDrawingMode.Invisible);
context.ShowTextAtPoint(centerX, y, text, text.Length);
context.SetTextDrawingMode(CGTextDrawingMode.Fill);
context.ShowTextAtPoint(centerX - (context.TextPosition.X - centerX)/2, y, text, text.Length);
}
//Does not work
protected void DrawCenteredTextAtPoint(CGContext context, float centerX, float y, string text, int textHeight)
{
var fontPath = NSBundle.MainBundle.PathForResource("COOPBL", "ttf", "fonts", "");
var provider = new CGDataProvider(fontPath);
var font = CGFont.CreateFromProvider(provider);
context.SetFont(font);
context.SetTextDrawingMode(CGTextDrawingMode.Invisible);
context.ShowTextAtPoint(centerX, y, text, text.Length);
context.SetTextDrawingMode(CGTextDrawingMode.Fill);
context.ShowTextAtPoint(centerX - (context.TextPosition.X - centerX)/2, y, text, text.Length);
}
Вы пытались использовать свой собственный шрифт в более простых местах? Например, вызовите 'UILabel.Font = UIFont.FromName (fn, 17);', где fn = "COOPBL". Я задаю вопрос, когда вы добавляете шрифт в cproj-файл в Xamarin Studio, он не помечен как Content in Build Action. Таким образом, возможно, шрифт неправильно включен в проект. –