首页 > 编程 > C# > 正文

winform创建不规则窗体的方法

2020-01-24 01:28:47
字体:
来源:转载
供稿:网友

本文实例讲述了winform创建不规则窗体的方法。分享给大家供大家参考。具体如下:

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using Microsoft.Win32;using System.Drawing.Drawing2D;using System.IO;namespace WindowsApplication2{ public partial class Form3 : Form {  public Form3()  {   InitializeComponent();   this.FormBorderStyle = FormBorderStyle.None;   ColorConverter colorconvert = new ColorConverter();   this.BackColor = (Color)colorconvert.ConvertFromString("window");   this.TransparencyKey = (Color)colorconvert.ConvertFromString("window");  }  private void button1_Click(object sender, EventArgs e)  {   this.Close();  }  protected override void OnPaint(PaintEventArgs e)  {   Graphics g = e.Graphics;   Rectangle mainRect = new Rectangle(0, 0, 695, 278);   Region mainRegion = new Region(mainRect);   e.Graphics.SetClip(mainRegion, CombineMode.Replace);   //设置窗体的外观形式   Point point1 = new Point(0, 32);   Point point2 = new Point(9, 20);   Point point3 = new Point(21, 13);   Point point4 = new Point(34, 9);   // 创建一个以点为元素的数组   Point[] curvePoints = { point1, point2, point3, point4 };   // 创建一个GraphicsPath 对象并添加一条曲线   GraphicsPath gPath = new GraphicsPath();   gPath.AddCurve(curvePoints, 0, 3, 0.8f);   gPath.AddLine(36, 9, 378, 9);   point1.X = 378; point1.Y = 9;   point2.X = 387; point2.Y = 5;   point3.X = 394; point3.Y = 0;   Point[] curvePoints2 = { point1, point2, point3 };   gPath.AddCurve(curvePoints2, 0, 2, 0.8f);   gPath.AddLine(394, 0, 0, 0);   Region rg = new Region(gPath);   e.Graphics.ExcludeClip(rg);  //可以为任意图片   string str = Directory.GetCurrentDirectory() + "//2.png";   Image img = Image.FromFile(str);   e.Graphics.DrawImage(img, 0, 0, 695, 278);   // 重设剪切好的区域   e.Graphics.ResetClip();  } }}

希望本文所述对大家的C#程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表