C# (…)不';t存在于当前上下文中-渐变和其他笔刷

C# (…)不';t存在于当前上下文中-渐变和其他笔刷,c#,winforms,gradient,brush,C#,Winforms,Gradient,Brush,我看到了一种制作窗体背景色渐变的方法 这是用梯度画笔做的,但当我尝试时,它说它不存在 我这样写道: GradientBrush something = New GradientBrush(); 在输出窗口中,我看到“当前上下文中不存在”错误。您可能需要将System.Windows.Medianampespace添加到应用程序中 简单地加上 using System.Windows.Media; 然后编译器会重新编码这个类 祝您好运。在winforms表单中您可以执行以下操作: using

我看到了一种制作窗体背景色渐变的方法

这是用梯度画笔做的,但当我尝试时,它说它不存在

我这样写道:

GradientBrush something = New GradientBrush();

在输出窗口中,我看到“当前上下文中不存在”错误。

您可能需要将
System.Windows.Media
nampespace添加到应用程序中 简单地加上

using System.Windows.Media;
然后编译器会重新编码这个类


祝您好运。

winforms表单中
您可以执行以下操作:

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的多色重载
!有关示例,请参见

如果背景是固定的,你可以考虑创建一个带有渐变的位图。如果用户不调整窗体的大小,则此选项非常完美..:

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;

添加您试图执行的代码。您的目标是什么:Winforms?WPF?ASP。。。??始终相应地标记您的问题!-因为在Winforms中,
GradientBrush
无法识别。看看我的答案如何在Winforms中创建一个简单的渐变!