好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

winform创建不规则窗体的方法

本文实例讲述了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#程序设计有所帮助。

dy("nrwz");

查看更多关于winform创建不规则窗体的方法的详细内容...

  阅读:69次