1

我尝试了以下代码,但最后一行导致错误 *Error Argument '1': cannot convert from 'System.Windows.Media.RadialGradientBrush' to 'System.Drawing.Brush' *
我有 Visual Studio 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);
    }

谁能告诉我如何用径向笔刷填充椭圆?

4

1 回答 1

3

void Main_Screen_Paint(object sender, PaintEventArgs e)明显,您的应用程序是 Windows.Forms。然而RadialGradientBrush,它是一个 WPF 组件。那只是不兼容。

就我个人而言,我认为 WPF 命名空间以 . 开头有点愚蠢System.Windows,但这就是生活。

于 2010-08-18T21:28:09.450 回答