当前位置: 代码迷 >> C# >> C# winfrom项目,怎么将form窗体由矩形变成圆形窗体
  详细解决方案

C# winfrom项目,怎么将form窗体由矩形变成圆形窗体

热度:109   发布时间:2016-05-05 03:53:37.0
C# winfrom项目,如何将form窗体由矩形变成圆形窗体
在C# winfrom项目,如何将form窗体由矩形绘制成圆形窗体。
请各位帮忙提供下这方面的相关源码或资料。谢谢。
------解决思路----------------------
建议楼主还是考虑用WPF
------解决思路----------------------
本帖最后由 bdmh 于 2015-04-22 08:34:04 编辑
很多方法
http://blog.163.com/chenjunfeng_2007/blog/static/11938508320101665811207/
------解决思路----------------------
http://www.cnblogs.com/haiq/articles/1751777.html
------解决思路----------------------
/// <summary>
        /// 窗体圆角
        /// </summary>
        /// <param name="sender"></param>
        private void Type(Control sender)
        {
            GraphicsPath oPath = new GraphicsPath();
            oPath.AddPolygon(
                new Point[] {
                new Point(0, 1),
                new Point(1, 0),

                new Point(sender.Width -1, 0),
                new Point(sender.Width , 1),

                new Point(sender.Width, sender.Height-2),
                new Point(sender.Width-1, sender.Height-1),
                new Point(sender.Width-1, sender.Height),

                 new Point(1, sender.Height),
                new Point(1, sender.Height-1),
                new Point(0, sender.Height-2),
               }
             );
            sender.Region = new Region(oPath);
        }
 f.Paint += delegate(object sender, PaintEventArgs e)
            {
                Type(f);
                //窗体头部颜色设置
                e.Graphics.FillPolygon(new SolidBrush(HeadColor), new Point[] {
                new Point(0, 1),
                new Point(1, 0),

                new Point(this.Width -1, 0),
                new Point(this.Width , 1),

                new Point(this.Width, 50),
                new Point(0, 50),
               });
            };





想怎么画就怎么画。
------解决思路----------------------
引用:
/// <summary>
        /// 窗体圆角
        /// </summary>
        /// <param name="sender"></param>
        private void Type(Control sender)
        {
            GraphicsPath oPath = new GraphicsPath();
            oPath.AddPolygon(
                new Point[] {
                new Point(0, 1),
                new Point(1, 0),

                new Point(sender.Width -1, 0),
                new Point(sender.Width , 1),

                new Point(sender.Width, sender.Height-2),
                new Point(sender.Width-1, sender.Height-1),
                new Point(sender.Width-1, sender.Height),

                 new Point(1, sender.Height),
                new Point(1, sender.Height-1),
                new Point(0, sender.Height-2),
               }
             );
            sender.Region = new Region(oPath);
        }
 f.Paint += delegate(object sender, PaintEventArgs e)
            {
                Type(f);
                //窗体头部颜色设置
                e.Graphics.FillPolygon(new SolidBrush(HeadColor), new Point[] {
                new Point(0, 1),
                new Point(1, 0),

                new Point(this.Width -1, 0),
                new Point(this.Width , 1),

                new Point(this.Width, 50),
                new Point(0, 50),
               });
            };





想怎么画就怎么画。
这个方法不错,可以试一下
  相关解决方案