找回密码
 注册
搜索
热搜: 回贴

C# 制作出任意不规则按钮

2009-12-13 12:45| 发布者: admin| 查看: 56| 评论: 0|原作者: 心然

□C#制作出任意不规则按钮!(原理根据背景......


  C# 制作出任意不规则按钮! (原理根据背景图绘制button)
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 if(bitmap.GetPixel(colNext, row) == colorTransparent)
break;

graphicsPath.AddRectangle(new Rectangle(colOpaquePixel,
row, colNext - colOpaquePixel, 1));

col = colNext;
}
}
}
return graphicsPath;
}

最新评论

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-29 23:27 , Processed in 0.232665 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

返回顶部