c# winform制作不规则窗体的案例

  介绍

这篇文章主要介绍了c# winform制作不规则窗体的案例,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。

私人空间Form1_Load(对象发送方,EventArgs e)   {//重新绘制窗口样式   字符串文件名=@" C: \用户桌面\ \ admin \ Yuan1.png";   位图mybitmap=新的位图(文件名);   CreateControlRegion(这个,mybitmap);   这一点。背景色=Color.White;//此处为添加部分   这一点。TransparencyKey=Color.White;//此处为添加部分   }
///& lt;参数name=癰itmap"祝辞& lt;/param>
  公共静态孔隙CreateControlRegion(控制控制,位图的位图)
  {//返回如果控制和位图是null//判断是否存在控件和位图
  如果(控制==null | |位图==null)
  返回;//设置控件大小为位图大小
  控制。宽度=bitmap.Width;
  控制。身高=bitmap.Height;//检查是否我们正在处理形式//当控件是形成时
  如果System.Windows.Forms.Form(控制)
  {//表单对象//强制转换为形式
  表格形式=(形式)控制;//当形式的边界FormBorderStyle不为没有时,应将形式的大小设置成比位图大小稍大一点
  的形式。宽度=control.Width;
  的形式。身高=control.Height;//没有边界
  的形式。FormBorderStyle=FormBorderStyle.None;//将位图设置成窗体背景图片
  的形式。BackgroundImage=位图;//计算位图中不透明部分的边界
  GraphicsPath GraphicsPath=CalculateControlGraphicsPath(位图);//应用新的区域
  的形式。区域=new区域(graphicsPath);//以下为自己添加的语句,不添加此两句会出现问题
  的形式。宽度=bitmap.Width;
  的形式。身高=bitmap.Height;
  }//当控件是按钮时
  System.Windows.Forms.Button else if(控制)
  {//强制转换为按钮
  按钮按钮=(按钮)控制;//不显示按钮文本
  按钮。文本=?“;//改变光标的风格
  按钮。光标=Cursors.Hand;//设置按钮的背景图片
  按钮。BackgroundImage=位图;//计算位图中不透明部分的边界
  GraphicsPath GraphicsPath=CalculateControlGraphicsPath(位图);//应用新地区//应用新的区域
  按钮。区域=new区域(graphicsPath);
  按钮。宽度=bitmap.Width;
  按钮。身高=bitmap.Height;
  按钮。FlatStyle=FlatStyle.Popup;//此处为添加部分
  }
  }
  私有静态GraphicsPath CalculateControlGraphicsPath(位图的位图)
  {//创建GraphicsPath
  GraphicsPath GraphicsPath=new GraphicsPath ();//使用左上角的一点的颜色作为我们透明色
  颜色colorTransparent=位图。获取像素(0,0);//第一个找到点的X
  int colOpaquePixel=0;//偏历所有行(Y方向)
  for (int行=0;行& lt;位图。高度- 1;行+ +)
  {//重置价值//重设
  colOpaquePixel=0;//偏历所有列(X方向)
  for (int坳=0;坳& lt;位图。宽度- 1;坳+ +)
  {//如果是不需要透明处理的点则标记,然后继续偏历
  如果(位图。获取像素(坳、行)!=colorTransparent)
  {
  
  colOpaquePixel=上校;//建立新变量来记录当前点
  int colNext=上校;///从找到的不透明点开始,继续寻找不透明点,一直到找到或则达到图片宽度
  (colNext=colOpaquePixel;colNext & lt;bitmap.Width;colNext + +)
  {
  gpi=位图颜色。获取像素(colNext、行);
  如果(位图。获取像素(colNext行)==colorTransparent)
  {
  
  打破;
  }
  }//将不透明点加到图形的路径
  
  {
  graphicsPath。AddRectangle(新矩形(colOpaquePixel、行colNext colOpaquePixel, 1));
  }
  坳=colNext;
  }
  }
  }
  返回graphicsPath;
  }

感谢你能够认真阅读完这篇文章,希望小编分享c# winform制作不规则窗体的案例内容对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,遇到问题就找,详细的解决方法等着你来学习!

c# winform制作不规则窗体的案例