2010-08-18 65 views
1

我试过下面的代码,但最后一行导致错误 *错误参数'1':无法从'System.Windows.Media.RadialGradientBrush'转换为'System.Drawing.Brush' *
我的Visual Studio 2008WPF径向梯度

<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?

回答

3

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

就我个人而言,我认为它的界限很愚蠢,即WPF命名空间从System.Windows开始,但这就是生活。

+0

我想知道WPF标签在哪里。 – Crispy 2010-08-18 21:29:38

+0

谢谢你的回复,请看看我的最新问题。 P.S. 'WPF'标签自动添加 – ClimberM 2010-08-19 07:48:26