2010-08-18 2 views
1

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

<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

+0

Благодарим вас за ответы, пожалуйста, взгляните на мой последний вопрос. P.S. тег WPF был добавлен автоматически – ClimberM