WPF радиальные градиенты

Я пробовал следующий код, но последняя строка вызывает ошибку * Аргумент ошибки '1': невозможно преобразовать из 'System.Windows.Media.RadialGradientBrush' в 'System.Drawing.Brush' *
У меня визуальная студия 2008

<CODE>

/*
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows;
*/
        private void Main_Screen_Paint(object sender, PaintEventArgs e)
        {
            Rectangle rBoundingBox = e.ClipRectangle;
            RadialGradientBrush radialGradient = new RadialGradientBrush();
            radialGradient.GradientOrigin = new System.Windows.Point(5, 5);
            radialGradient.Center = new System.Windows.Point(5, 5);
            radialGradient.RadiusX = 5;
            radialGradient.RadiusY = 5;
            radialGradient.GradientStops.Add(new GradientStop(Colors.Yellow, 0.0));
            radialGradient.GradientStops.Add(new GradientStop(Colors.Red, 0.25));
            radialGradient.GradientStops.Add(new GradientStop(Colors.Blue, 0.75));
            radialGradient.GradientStops.Add(new GradientStop(Colors.LimeGreen, 1.0));
            radialGradient.Freeze();

        rBoundingBox.Inflate(-5, -5);

        e.Graphics.FillEllipse(radialGradient, rBoundingBox);
    }

Может кто-нибудь сказать мне, как заполнить elipse с радиальной кистью?

1 ответ

Решение

От void Main_Screen_Paint(object sender, PaintEventArgs e) Понятно, что ваше приложение - Windows.Forms. RadialGradientBrush однако является компонентом WPF. Это просто не совместимо.

Лично я думаю, что это глупо, что пространства имен WPF начинаются с System.WindowsНо такова жизнь.

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