首页 > 编程 > C# > 正文

winform创建不规则窗体的方法

2019-10-29 21:38:50
字体:
来源:转载
供稿:网友

这篇文章主要介绍了winform创建不规则窗体的方法,涉及C#窗体创建的相关参数设置技巧,非常具有实用价值,需要的朋友可以参考下

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

 

 
  1. using System; 
  2. using System.Collections.Generic; 
  3. using System.ComponentModel; 
  4. using System.Data; 
  5. using System.Drawing; 
  6. using System.Text; 
  7. using System.Windows.Forms; 
  8. using Microsoft.Win32; 
  9. using System.Drawing.Drawing2D; 
  10. using System.IO; 
  11. namespace WindowsApplication2 
  12. public partial class Form3 : Form 
  13. public Form3() 
  14. InitializeComponent(); 
  15. this.FormBorderStyle = FormBorderStyle.None; 
  16. ColorConverter colorconvert = new ColorConverter(); 
  17. this.BackColor = (Color)colorconvert.ConvertFromString("window"); 
  18. this.TransparencyKey = (Color)colorconvert.ConvertFromString("window"); 
  19. private void button1_Click(object sender, EventArgs e) 
  20. this.Close(); 
  21. protected override void OnPaint(PaintEventArgs e) 
  22. Graphics g = e.Graphics; 
  23. Rectangle mainRect = new Rectangle(0, 0, 695, 278); 
  24. Region mainRegion = new Region(mainRect); 
  25. e.Graphics.SetClip(mainRegion, CombineMode.Replace); 
  26. //设置窗体的外观形式 
  27. Point point1 = new Point(0, 32); 
  28. Point point2 = new Point(9, 20); 
  29. Point point3 = new Point(21, 13); 
  30. Point point4 = new Point(34, 9); 
  31. // 创建一个以点为元素的数组 
  32. Point[] curvePoints = { point1, point2, point3, point4 }; 
  33. // 创建一个GraphicsPath 对象并添加一条曲线 
  34. GraphicsPath gPath = new GraphicsPath(); 
  35. gPath.AddCurve(curvePoints, 0, 3, 0.8f); 
  36. gPath.AddLine(36, 9, 378, 9); 
  37. point1.X = 378; point1.Y = 9; 
  38. point2.X = 387; point2.Y = 5; 
  39. point3.X = 394; point3.Y = 0; 
  40. Point[] curvePoints2 = { point1, point2, point3 }; 
  41. gPath.AddCurve(curvePoints2, 0, 2, 0.8f); 
  42. gPath.AddLine(394, 0, 0, 0); 
  43. Region rg = new Region(gPath); 
  44. e.Graphics.ExcludeClip(rg); 
  45. //可以为任意图片 
  46. string str = Directory.GetCurrentDirectory() + "//2.png"
  47. Image img = Image.FromFile(str); 
  48. e.Graphics.DrawImage(img, 0, 0, 695, 278); 
  49. // 重设剪切好的区域 
  50. e.Graphics.ResetClip(); 

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

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