C# 制作出任意不规则按钮! (原理根据背景图绘制button)

王朝c#·作者佚名  2008-05-30
窄屏简体版  字體: |||超大  

using System.Drawing.Drawing2D;

private void button3_Paint(object sender, System.Windows.Forms.PaintEventArgs e)

{ this.button3.Cursor = Cursors.Hand;

Bitmap bmpBob =(Bitmap)this.button3.Image;

GraphicsPath graphicsPath = CalculateControlGraphicsPath(bmpBob);

this.button3.Region = new Region(graphicsPath);

}

private static GraphicsPath CalculateControlGraphicsPath(Bitmap bitmap)

{

GraphicsPath graphicsPath = new GraphicsPath();

Color colorTransparent = bitmap.GetPixel(0, 0);

int colOpaquePixel = 0;

for(int row = 0; row < bitmap.Height; row ++)

{

colOpaquePixel = 0;

for(int col = 0; col < bitmap.Width; col ++)

{

if(bitmap.GetPixel(col, row) != colorTransparent)

{

colOpaquePixel = col;

int colNext = col;

for(colNext=colOpaquePixel; colNext<bitmap.Width; colNext++)

if(bitmap.GetPixel(colNext, row) == colorTransparent)

break;

graphicsPath.AddRectangle(new Rectangle(colOpaquePixel,

row, colNext - colOpaquePixel, 1));

col = colNext;

}

}

}

return graphicsPath;

}

http://www.cnblogs.com/zengping/archive/2006/08/30/490720.html

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航