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

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

1 голос
/ 19 августа 2010

Я попробовал следующий код, но последняя строка вызывает ошибку * Аргумент об ошибке «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 Ответ

3 голосов
/ 19 августа 2010

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

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

...