2015-09-16 11 views
2

Я видел способ сделать фоновый цвет формы градиентом.(...) не существует в текущем контексте - Градиент и другие кисти

Это было сделано GradientBrush, но когда я пробую это, он говорит, что его не существует.

Я написал так:

GradientBrush something = New GradientBrush(); 

В выходном окне я вижу «не существует в текущем контексте» ошибки.

+0

Добавить код, который вы пытаетесь сделать. –

+0

Что вы нацеливаете: Winforms? WPF? ASP? ... ?? __Always__ соответствующим образом помечайте свой вопрос! - Поскольку «GradientBrush» не распознается, я принимаю Winforms. См. Мой ответ, как создать простой градиент в Winforms! – TaW

ответ

0

В winforms Form вы могли бы сделать это:

using System.Drawing.Drawing2D; 
... 
... 

private void Form1_Paint(object sender, PaintEventArgs e) 
{ 
    using (LinearGradientBrush br = new 
      LinearGradientBrush(Form1.ClientRectangle, Color.Wheat, Color.DimGray, 0f)) 
     e.Graphics.FillRectangle(br, Form1.ClientRectangle); 
} 

Чтобы избавиться от мерцания установить форму для DoubleBuffered = true;

Для более цветов использовать перегрузку многоцветной из LinearGradientBrush! Для примера см. here!

enter image description here

Если фон фиксирован вы можете рассмотреть вопрос о создании растрового изображения с градиентом. Идеально, если пользователь не изменит размер формы.:

Bitmap form1Back = new Bitmap(form1.ClientSize.Width, form1.ClientSize.Height); 
using (Graphics G = Graphics.FromImage(form1Back)) 
using (LinearGradientBrush br = new 
     LinearGradientBrush(form2.ClientRectangle, Color.Wheat, Color.DimGray, 0f)) 
    G.FillRectangle(br, form2.ClientRectangle); 
form1.BackgroundImage = form1Back; 
1

Возможно, вы захотите добавить нумерацию System.Windows.Media к вашему приложению просто добавьте.

using System.Windows.Media; 

Тогда компилятор будет распознавать этот класс.

Goodluck.

 Смежные вопросы

  • Нет связанных вопросов^_^