winform创建不规则窗体的方法
本文实例讲述了winform创建不规则窗体的方法。分享给大家供大家参考。具体如下:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Text;
usingSystem.Windows.Forms;
usingMicrosoft.Win32;
usingSystem.Drawing.Drawing2D;
usingSystem.IO;
namespaceWindowsApplication2
{
publicpartialclassForm3:Form
{
publicForm3()
{
InitializeComponent();
this.FormBorderStyle=FormBorderStyle.None;
ColorConvertercolorconvert=newColorConverter();
this.BackColor=(Color)colorconvert.ConvertFromString("window");
this.TransparencyKey=(Color)colorconvert.ConvertFromString("window");
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
this.Close();
}
protectedoverridevoidOnPaint(PaintEventArgse)
{
Graphicsg=e.Graphics;
RectanglemainRect=newRectangle(0,0,695,278);
RegionmainRegion=newRegion(mainRect);
e.Graphics.SetClip(mainRegion,CombineMode.Replace);
//设置窗体的外观形式
Pointpoint1=newPoint(0,32);
Pointpoint2=newPoint(9,20);
Pointpoint3=newPoint(21,13);
Pointpoint4=newPoint(34,9);
//创建一个以点为元素的数组
Point[]curvePoints={point1,point2,point3,point4};
//创建一个GraphicsPath对象并添加一条曲线
GraphicsPathgPath=newGraphicsPath();
gPath.AddCurve(curvePoints,0,3,0.8f);
gPath.AddLine(36,9,378,9);
point1.X=378;point1.Y=9;
point2.X=387;point2.Y=5;
point3.X=394;point3.Y=0;
Point[]curvePoints2={point1,point2,point3};
gPath.AddCurve(curvePoints2,0,2,0.8f);
gPath.AddLine(394,0,0,0);
Regionrg=newRegion(gPath);
e.Graphics.ExcludeClip(rg);
//可以为任意图片
stringstr=Directory.GetCurrentDirectory()+"\\2.png";
Imageimg=Image.FromFile(str);
e.Graphics.DrawImage(img,0,0,695,278);
//重设剪切好的区域
e.Graphics.ResetClip();
}
}
}
希望本文所述对大家的C#程序设计有所帮助。