Пользовательский UIPrintPageRenderer ничего не рендерит - PullRequest
0 голосов
/ 03 августа 2011

Я создал свой собственный подкласс UIPrintPageRenderer и в своей перегрузке для DrawContentForPage () я рисую простой прямоугольник, но ничего не рендерим:

public override void DrawContentForPage (int index, RectangleF contentRect)
{
    Context vContext = UIGraphics.GetCurrentContext ();
    vContext.SetStrokeColor (new float[] { 1.0f, 0.0f, 0.0f, 1.0f });
    vContext.SetLineWidth (10);
    vContext.StrokeRect (new RectangleF (PrintableRect.Left + 10, PrintableRect.Top + 10, 100, 100));
}

Почему бы и нет?

1 Ответ

0 голосов
/ 03 августа 2011

Оказывается, есть два способа «исправить» это:

  1. Изменить vContext.SetStrokeColor (new float[] { 1.0f, 0.0f, 0.0f, 1.0f }); на vContext.SetRGBStrokeColor(1.0f, 0.0f, 0.0f, 1.0f);

  2. Позвонить vContext.SetStrokeColorSpace (CGColorSpace.CreateDeviceRGB ());

Оба эти решения сначала устанавливают цветовое пространство текущего обводки в RGB, а затем задают цветовые значения.Причина, по которой он не работал раньше, заключается в том, что цветовое пространство явно не было установлено в RGB (вероятно, это был CMYK или что-то в этом роде).

...