C#绘制圆角窗体

简介:
public   void   SetWindowRegion()     
  {     
  System.Drawing.Drawing2D.GraphicsPath   FormPath;     
  FormPath   =   new   System.Drawing.Drawing2D.GraphicsPath();     
  Rectangle   rect=new   Rectangle(0,22,this.Width,this.Height-22);//this.Left-10,this.Top-10,this.Width-10,this.Height-10);                 
  FormPath   =   GetRoundedRectPath(rect,   30);   
  this.Region   =   new   Region(FormPath);     
  }   
  private   GraphicsPath   GetRoundedRectPath(Rectangle   rect,   int   radius)     
  {   
  int   diameter   =   radius;   
  Rectangle   arcRect   =   new   Rectangle(rect.Location,   new   Size(diameter,   diameter));   
  GraphicsPath   path   =   new   GraphicsPath();   
  //   左上角   
  path.AddArc(arcRect,   180,   90);   
  //   右上角   
  arcRect.X   =   rect.Right   -   diameter;   
  path.AddArc(arcRect,   270,   90);   
  //   右下角   
  arcRect.Y   =   rect.Bottom   -   diameter;   
  path.AddArc(arcRect,   0,   90);   
  //   左下角   
  arcRect.X   =   rect.Left;   
  path.AddArc(arcRect,   90,   90);   
  path.CloseFigure();   
  return   path;   
  }   
  protected   override   void   OnResize(System.EventArgs   e)     
  {     
  this.Region   =   null;     
  SetWindowRegion();     

  }

















本文转自terryli51CTO博客,原文链接: http://blog.51cto.com/terryli/520862,如需转载请自行联系原作者




相关文章
|
9月前
边框虚线滚动动画特效
边框虚线滚动动画特效
|
移动开发 HTML5
使用三次贝塞尔曲线绘制弧形菜单
使用三次贝塞尔曲线绘制弧形菜单
|
前端开发
基于canvas绘制边框环绕进度条
基于canvas绘制边框环绕进度条
271 0
基于canvas绘制边框环绕进度条
设置 窗体 静态控件颜色
设置 窗体 静态控件颜色
88 0
Qt无边框窗口拖拽和阴影
无边框窗口的实现
458 0
Qt无边框窗口拖拽和阴影
|
C#
WPF去除窗体边框及白色边框
原文:WPF去除窗体边框及白色边框        0
1501 0
|
图形学
控件渐变色的实现
控件渐变色的实现(一)—— CAGradientLayer实现控件渐变色的实现(二)—— Core Graphics实现
801 0
|
C# 前端开发
[原译]WPF绘制圆角多边形
原文:[原译]WPF绘制圆角多边形 介绍 最近,我发现我需要个圆角多边形。而且是需要在运行时从用户界面来绘制。WPF有多边形。但是不支持圆角。我搜索了一下。也没找到可行的现成例子。于是就自己做吧。本文描述了圆角多边形的实现,也包括如何用在你的项目里。
1622 0