标题:C#如何编写出一个不规则的按钮
只看楼主
欲与天斗
Rank: 4
等 级:业余侠客
帖 子:88
专家分:270
注 册:2010-10-6
结帖率:75%
已结贴  问题点数:5 回复次数:6 
C#如何编写出一个不规则的按钮
不知道如何使用C#定义一个不规则的按钮呀,使他怎么放大或缩小都不会改变他的样式,最好给上代码,本人算是菜鸟吧,谢谢了,急需
搜索更多相关主题的帖子: 按钮 编写 
2010-10-27 22:47
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2545
专家分:9359
注 册:2007-11-3
得分:5 
程序代码:
(原理根据背景图绘制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<bitmap.Width; colNext++)
       if(bitmap.GetPixel(colNext, row) == colorTransparent)
        break;
    
      graphicsPath.AddRectangle(new Rectangle(colOpaquePixel,
       row, colNext - colOpaquePixel, 1));
   
      col = colNext;
     }
    }
   } 
   return graphicsPath;
  } 


出来混,谁不都要拼命的嘛。 。拼不赢?那就看谁倒霉了。 。有机会也要看谁下手快,快的就能赢,慢。 。狗屎你都抢不到。 。还说什么拼命?
2010-10-28 08:16
欲与天斗
Rank: 4
等 级:业余侠客
帖 子:88
专家分:270
注 册:2010-10-6
得分:0 
回复 2楼 wangnannan
首先我要谢谢你,但是我做了好久也没有出来,你能不能再麻烦一下,给一个窗口程序上面给个不规则的按钮呀,这样我容易懂一些,谢谢了
2010-10-28 15:32
欲与天斗
Rank: 4
等 级:业余侠客
帖 子:88
专家分:270
注 册:2010-10-6
得分:0 
没有人帮忙吗,我快愁死了
2010-10-28 20:58
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2545
专家分:9359
注 册:2007-11-3
得分:0 

是不是这样啊 楼主?  楼主说的不规则 不知道是不是圆形 如果是三角形 或者多边形 在下就爱莫能助了 楼主还是仔细研究下GDI+吧
这里附上圆形按钮源码
cycleButton.rar (49.61 KB)


[ 本帖最后由 wangnannan 于 2010-10-28 21:29 编辑 ]

出来混,谁不都要拼命的嘛。 。拼不赢?那就看谁倒霉了。 。有机会也要看谁下手快,快的就能赢,慢。 。狗屎你都抢不到。 。还说什么拼命?
2010-10-28 21:21
欲与天斗
Rank: 4
等 级:业余侠客
帖 子:88
专家分:270
注 册:2010-10-6
得分:0 
回复 5楼 wangnannan
是啊,我的邮箱是cttao518@,谢谢你了
2010-10-28 21:28
mike0917
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-11-20
得分:0 
占个地方,学学代码
谢谢版主的资料~~
2012-11-20 10:01



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-324197-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.117969 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved