protected override void OnDrawSample(SKCanvas canvas, int width, int height)
        {
            canvas.Clear(SKColors.White);

            var step = height / 4;

            using (var paint = new SKPaint())
                using (var effect = SKPathEffect.CreateDash(new[] { 15f, 5f }, 0))
                {
                    paint.IsStroke    = true;
                    paint.StrokeWidth = 4;
                    paint.PathEffect  = effect;
                    canvas.DrawLine(10, step, width - 10 - 10, step, paint);
                }

            using (var paint = new SKPaint())
                using (var effect = SKPathEffect.CreateDiscrete(10, 10))
                {
                    paint.IsStroke    = true;
                    paint.StrokeWidth = 4;
                    paint.PathEffect  = effect;
                    canvas.DrawLine(10, step * 2, width - 10 - 10, step * 2, paint);
                }

            using (var paint = new SKPaint())
                using (var dashEffect = SKPathEffect.CreateDash(new[] { 15f, 5f }, 0))
                    using (var discreteEffect = SKPathEffect.CreateDiscrete(10, 10))
                        using (var effect = SKPathEffect.CreateCompose(dashEffect, discreteEffect))
                        {
                            paint.IsStroke    = true;
                            paint.StrokeWidth = 4;
                            paint.PathEffect  = effect;
                            canvas.DrawLine(10, step * 3, width - 10 - 10, step * 3, paint);
                        }
        }
Exemplo n.º 2
0
        /// <inheritdoc />
        public void DrawLine(Point point1, Point point2, IPaint paint)
        {
            using var skPaint = new SKPaint
                  {
                      Color       = paint.Fill.ToSkColor(paint.Opacity),
                      StrokeWidth = paint.StrokeThickness,
                      IsAntialias = paint.IsAntialiased,
                      IsStroke    = Math.Abs(paint.StrokeThickness) > float.Epsilon
                  };

            if (paint.DashPattern != null)
            {
                var dashEffect = SKPathEffect.CreateDash(paint.DashPattern, 0);
                skPaint.PathEffect = skPaint.PathEffect != null
                    ? SKPathEffect.CreateCompose(dashEffect, skPaint.PathEffect)
                    : dashEffect;
            }

            Surface.Canvas.DrawLine(point1.ToSkPoint(), point2.ToSkPoint(), skPaint);
        }