C#创建不规择窗体及”艺术“窗体的建立....

偶尔写篇博文......一般我都在外文站点,基本不太用中国的站点,不规择窗体的建立,像带箭头的提示框,或用户窗体中用户头像凸出窗体一定高度或有点艺术像绘画描述物体的窗体,其实呢就是用窗体REGION了,画不规择图形就是graphics的DRAWPATH,fillpath了,实现起来就是在FORMLOAD事件中this.region=new region(graphicspath..) ;this.invalidate();或中FORM中的OVERRIDE ONPAINT()写入,在构造函数中SetStyle一下 UserPaint  及 AllPaintingInWmPaint或打开双缓冲;关键就是GraphicsPath建立一些顶点及连接的POINT(理解为窗体X,Y的坐标),下边的窗体就是类似一个用户头像凸出窗体一定高度,下面灰色的窗体(我只随便绘制一下,把FORMBOARDSTYLE设为NONE)我没时间用渐变,透明,色彩,阴影去美化了...


下边的代码我随便编的,复制一下运行

   using System.Drawing .Drawing2D ;

   using Gdi_Net = System.Drawing;  /// mult namespace

public GraphicsPath Get_GPath()

        {
            List<PointF> list = new List<PointF>();
           // int width = this.Width-80;  如果是在窗体中画的话,计算下MARGIN及TransparencyKey透明下窗体不建议,建议用双窗体在带上边框角度阴影
           // int height = this.Height-80;
            /左上
            list.Add(new PointF(0, 50)); // start point x(left0) y(top 50)
            list.Add(new PointF(50,50));// start point x(left50 y(top 50)
            list.Add(new PointF(50, 0)); // start point x(left 50 y(top 0)
            list.Add(new PointF(100, 0)); // start point x(left 100  y(top 0)
             list.Add(new PointF(100, 50)); // satrt point x(left 100, y(top 50)
            list.Add(new PointF(width, 50)); 
            list.Add(new PointF(width, height));
            list.Add(new PointF(0, height));
            PointF[] points = list.ToArray();
            GraphicsPath tempvar= new GraphicsPath();
            tempvar.AddPolygon(points);

            return tempvar;  }

然后呢在(我是在窗体中重绘的图形)也可以建立个按钮,事件写入   this.Region = Get_GPath(); this.Invalidate();

  protected override void OnPaint(PaintEventArgs e)

        {
         //   this.BackColor = Color.AliceBlue;  
        //    this.TransparencyKey = Color.AliceBlue;
            
            base.OnPaint(e);
            e.Graphics .FillPath (  Brushes .Gray  ,  Get_GPath());

       

}


这样就实现了...复杂的一些游戏应用这个实现不了的...



          



      

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值