Конвертировать PointF [] в CGPoint [] - PullRequest
0 голосов
/ 10 мая 2018

Пример кода в документации для CGContext.AddLines не компилируется для меня.

ctxt.AddLines (new PointF[] {
    new PointF (30, 30),
    new PointF (60, 30),
    new PointF (40, 40)
});

Ошибка:

невозможно преобразовать из 'System.Drawing.PointF [] 'до' CoreGraphics.CGPoint [] '

Я замечаю, что это работает:

  public void AddStraightLine(PointF start, PointF end)
  {
     var path = new CGPath();

     path.AddLines(new CGPoint[]
     {
        start,
        end
     });
  }

1 Ответ

0 голосов
/ 10 мая 2018

Документация немного устарела, вам придется переключить ее на использование CoreGraphics.CGPoint, что является самой новой и единственной перегрузкой вместо System.Drawing.PointF.Это результат необходимого перехода на iOS Unified API .

Соответствующее унифицированное изменение для iOS, перенесенное из документов, будет выглядеть примерно так:

using (var ctxt = UIGraphics.GetCurrentContext())
{
    var startingPoint = new CGPoint(20, 20);
    ctxt.MoveTo(startingPoint.X, startingPoint.Y);
    ctxt.SetStrokeColor(UIColor.Red.CGColor);
    var sz = new CGSize(2, 2);
    Func<CGPoint, CGPoint> offset = (CGPoint pt) => new CGPoint(pt.X - 1, pt.Y - 1);
    ctxt.AddEllipseInRect(new CGRect(offset(startingPoint), sz));

    ctxt.AddLines(new CGPoint[]
    {
        new CGPoint (30, 30),
        new CGPoint (60, 30),
        new CGPoint (40, 40)
    });

    ctxt.StrokePath();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...