Рисование дуги с помощью кисти с линейным градиентом с помощью 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();
}
}
И вот что я получаю:
Как видите, линейный градиент не применяется. Любая помощь будет оценена.
Чарльз