Рисование дуги с помощью кисти с линейным градиентом с помощью Microsoft Maui Graphics

У меня возникают трудности с рисованием дуги градиентного цвета с помощью Microsoft Maui Graphics.

Я использую Windows Forms, Visual Studio Preview 5 и .NET Core 6.

Вот что я пробовал:

      using Microsoft.Maui.Graphics;
using Microsoft.Maui.Graphics.Skia;

using System;
using System.Windows.Forms;

namespace MauiWinForms {
  public partial class Form1:Form {
    public Form1() {
      InitializeComponent();
    }

    private void skglControl1_PaintSurface(object sender, SkiaSharp.Views.Desktop.SKPaintGLSurfaceEventArgs e) {
      ICanvas canvas = new SkiaCanvas() { Canvas = e.Surface.Canvas };
      var canvasWidth = skglControl1.Width = 800;
      var canvasHeight = skglControl1.Height = 800;
      canvas.FillColor = Colors.LightGrey;
      canvas.FillRectangle(0, 0, canvasWidth, canvasHeight);

      canvas.StrokeColor = Colors.Red;
      canvas.DrawRectangle(1, 1, 800-2, 800-2);

      var centerX = canvasWidth / 2;
      var centerY = canvasHeight / 2;
      canvas.StrokeColor = Colors.Teal;
      canvas.StrokeSize = 10;
      var X = centerX - 200;
      canvas.DrawArc(X, 0, 400, 400, 0, 90, false, false);

      var linearGradientPaint = new LinearGradientPaint {
        StartColor = Colors.White,
        EndColor = Colors.Green,
        StartPoint = new Point(0, 0),
        EndPoint = new Point(1, 0)
      };
      var myRectangle = new RectangleF(X, 0, 410, 410);
      canvas.SetFillPaint(linearGradientPaint, myRectangle);
      canvas.DrawArc(X, 0, 400, 400, 0, -90, false, false);
    }

    private void skglControl1_SizeChanged(object sender, EventArgs e) => skglControl1.Invalidate();

  }
}

И вот что я получаю:

Как видите, линейный градиент не применяется. Любая помощь будет оценена.

Чарльз

0 ответов

Другие вопросы по тегам