您的位置:首页 > 编程语言 > C#

c#渐变效果的窗体背景

2013-03-07 13:35 357 查看
public enum WindowStyle : uint

{

WS_OVERLAPPED = 0x00000000,

WS_POPUP = 0x80000000,

WS_CHILD = 0x40000000,

WS_MINIMIZE = 0x20000000,

WS_VISIBLE = 0x10000000,

WS_DISABLED = 0x08000000,

WS_CLIPSIBLINGS = 0x04000000,

WS_CLIPCHILDREN = 0x02000000,

WS_MAXIMIZE = 0x01000000,

WS_CAPTION = 0x00C00000,

WS_BORDER = 0x00800000,

WS_DLGFRAME = 0x00400000,

WS_VSCROLL = 0x00200000,

WS_HSCROLL = 0x00100000,

WS_SYSMENU = 0x00080000,

WS_THICKFRAME = 0x00040000,

WS_GROUP = 0x00020000,

WS_TABSTOP = 0x00010000,

WS_MINIMIZEBOX = 0x00020000,

WS_MAXIMIZEBOX = 0x00010000,

WS_TILED = WS_OVERLAPPED,

WS_ICONIC = WS_MINIMIZE,

WS_SIZEBOX = WS_THICKFRAME,

WS_TILEDWINDOW = WS_OVERLAPPEDWINDOW,

WS_OVERLAPPEDWINDOW = (WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU |

WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX),

WS_POPUPWINDOW = (WS_POPUP | WS_BORDER | WS_SYSMENU),

WS_CHILDWINDOW = (WS_CHILD)

}

protected override CreateParams CreateParams

{

get

{

CreateParams cp = base.CreateParams;

if (!DesignMode)

{

cp.ExStyle |= (int)WindowStyle.WS_CLIPCHILDREN;

}

return cp;

}

}

protected override void OnPaint(PaintEventArgs e)

{

base.OnPaint(e);

DrawFromAlphaMainPart(this, e.Graphics);

}

#region Private

/// <summary>

/// 绘制窗体主体部分白色透明层

/// </summary>

/// <param name="form"></param>

/// <param name="g"></param>

public static void DrawFromAlphaMainPart(Form form, Graphics g)

{

Color[] colors =

{

Color.FromArgb(5, Color.White),

Color.FromArgb(30, Color.White),

Color.FromArgb(145, Color.White),

Color.FromArgb(150, Color.White),

Color.FromArgb(30, Color.White),

Color.FromArgb(5, Color.White)

};

float[] pos =

{

0.0f,

0.04f,

0.10f,

0.90f,

0.97f,

1.0f

};

ColorBlend colorBlend = new ColorBlend(6);

colorBlend.Colors = colors;

colorBlend.Positions = pos;

RectangleF destRect = new RectangleF(0, 0, form.Width, form.Height);

using (LinearGradientBrush lBrush = new LinearGradientBrush(destRect, colors[0], colors[5], LinearGradientMode.Vertical))

{

lBrush.InterpolationColors = colorBlend;

g.FillRectangle(lBrush, destRect);

}

}

#endregion
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: