Откуда полосы при рисовании WPF SKIA?

При рисовании с использованием WPF и SKIA (SkiaSharp) в C# можно использовать полосы для создания различных эффектов и стилей. Полосы являются базовым элементом графики в WPF и SKIA и представляют собой прямоугольные фигуры, которые могут быть заполнены цветом или текстурой.

В WPF, чтобы создать полосу, вы можете использовать класс System.Windows.Shapes.Rectangle. Этот класс наследуется от класса System.Windows.UIElement и предоставляет различные свойства и методы для настройки внешнего вида полосы, такие как цвет, ширина, высота, радиус скругления углов и др. Пример кода создания полосы в WPF может выглядеть так:

using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;

public class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();

        var rectangle = new Rectangle
        {
            Width = 200,
            Height = 50,
            Fill = Brushes.Blue,
            RadiusX = 10,
            RadiusY = 10
        };

        Canvas.SetLeft(rectangle, 100);
        Canvas.SetTop(rectangle, 100);

        canvas.Children.Add(rectangle);
    }

    private void InitializeComponent()
    {
        Width = 500;
        Height = 500;

        canvas = new Canvas();
        Content = canvas;
    }

    private Canvas canvas;
}

В приведенном примере создается главное окно (Window) и добавляется полоса (Rectangle) на холст (Canvas) с определенными параметрами: ширина - 200 пикселей, высота - 50 пикселей, цвет заполнения - синий, радиус скругления углов - 10 пикселей. Затем полоса добавляется на холст с определенными координатами (100, 100).

В SKIA (SkiaSharp), чтобы создать полосу, вы можете использовать класс SKRect и методы рисования из класса SKCanvas. Пример кода создания полосы в SKIA может выглядеть так:

using SkiaSharp;

public class MainWindow : SKCanvasView
{
    protected override void OnPaintSurface(SKPaintSurfaceEventArgs e)
    {
        base.OnPaintSurface(e);

        var canvas = e.Surface.Canvas;
        var info = e.Info;

        canvas.Clear(SKColors.White);

        using (var paint = new SKPaint())
        {
            paint.Color = SKColors.Blue;

            var rect = new SKRect(100, 100, 300, 150);
            canvas.DrawRoundRect(rect, 10, 10, paint);
        }
    }
}

В приведенном примере создается кастомное представление (SKCanvasView) и переопределяется метод OnPaintSurface для рисования на холсте (Canvas). Внутри метода создается экземпляр холста и информацию о холсте. Затем холст очищается (Clear) и рисуется полоса с определенными параметрами: координаты верхнего левого угла полосы (100, 100), координаты нижнего правого угла полосы (300, 150), радиус скругления углов - 10 пикселей, цвет - синий.

Обратите внимание, что эти примеры демонстрируют базовый принцип рисования полосы в WPF и SKIA, и вы можете настроить полосу с помощью дополнительных свойств и методов этих библиотек в соответствии с вашими потребностями и визуальными требованиями.