(...) 在当前上下文中不存在 - 渐变和其他画笔

(...) doesn't exist in the current context - Gradient and others brushes

我看到了一种制作表单背景颜色渐变的方法。

这是由 GradientBrush 完成的,但是当我尝试这样做时,它说它不存在。

我是这样写的:

GradientBrush something = New GradientBrush();

在输出 window 中,我看到 "doesn't exist in the current context" 错误。

您可能希望将 System.Windows.Media 命名空间添加到您的应用程序 只需添加。

using System.Windows.Media;

然后编译器会重新识别这个class。

祝你好运。

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

如果背景是固定的,您可以考虑创建一个带有渐变的位图。如果用户不调整表单大小就完美了..:[=​​17=]

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;