<ccid_code></ccid_code>private void Form_Paint(object sender, 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 myPath = new GraphicsPath();
myPath.AddCurve(curvePoints, 0, 3, 0.8f);
myPath.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 };
myPath.AddCurve(curvePoints2, 0, 2, 0.8f);
myPath.AddLine(394, 0, 0, 0);
Region ExcludeRegion3 = new Region(myPath);
e.Graphics.ExcludeClip(ExcludeRegion3);
GraphicsPath myPath3 = new GraphicsPath();
point1.X=0;point1.Y=180;
point2.X=19;point2.Y=198;
point3.X=62;point3.Y=204;
point4.X=83;point4.Y=221;
Point point5 = new Point(93, 248);
Point point6 = new Point(102, 267);
Point point7 = new Point(125, 278);
Point[] curvePoints3 = { point1, point2, point3, point4,
point5, point6, point7 };
myPath3.AddCurve(curvePoints3, 0, 6, 0.8f);
myPath3.AddLine(125, 278, 90, 300);
myPath3.AddLine(90, 300, 0, 300);
Region ExcludeRegion2 = new Region(myPath3);
e.Graphics.ExcludeClip(ExcludeRegion2);
point1.X=454;point1.Y=0;
point2.X=470;point2.Y=12;
point3.X=481;point3.Y=34;
Point[] curvePoints4 = { point1, point2, point3 };
GraphicsPath myPath2 = new GraphicsPath();
myPath2.AddCurve(curvePoints4, 0, 2, 0.8f);
myPath2.AddLine(481, 30, 481, 76);
myPath2.AddLine(481, 76, 495, 76);
myPath2.AddLine(495, 76, 495, 0);
Region ExcludeRegion4 = new Region(myPath2);
e.Graphics.ExcludeClip(ExcludeRegion4);
GraphicsPath myPath5 = new GraphicsPath();
point1.X=481;point1.Y=76;
point2.X=494;point2.Y=115;
point3.X=481;point3.Y=158;
Point[] curvePoints5 = { point1, point2, point3 };
myPath5.AddCurve(curvePoints5, 0, 2, 0.8f);
myPath5.AddLine(481, 158, 481, 279);
myPath5.AddLine(481, 255, 495, 279);
myPath5.AddLine(495, 279, 495, 0);
Region ExcludeRegion6 = new Region(myPath5);
e.Graphics.ExcludeClip(ExcludeRegion6);
point1.X=480;point1.Y=250;
point2.X=469;point2.Y=264;
point3.X=446;point3.Y=278;
Point[] curvePoints6 = { point1, point2, point3 };
GraphicsPath myPath4 = new GraphicsPath();
myPath4.AddCurve(curvePoints6, 0, 2, 0.8f);
myPath4.AddLine(450, 277, 495, 279);
Region ExcludeRegion5 = new Region(myPath4);
e.Graphics.ExcludeClip(ExcludeRegion5);
e.Graphics.DrawImage(img, 0, 0, 695,278);
// 重设剪切好的区域
e.Graphics.ResetClip();
}
|
相关推荐
这个"winform创建不规则窗体和控件源码.rar"文件显然包含了一个示例项目,展示了如何在WinForm应用程序中创建具有不规则形状的窗体和控件。在C#中,实现这一功能需要利用GDI+(Graphics Device Interface Plus)的...
在Windows Forms(Winform)开发中,创建不规则窗体和控件是一项高级技术,它允许开发者设计出具有独特形状的应用程序窗口,而非传统的矩形样式。本源码示例着重于利用C#编程语言来实现这一功能。下面将详细阐述相关...
在C#编程中,创建不规则窗体和控件是一项高级技术,主要涉及到Windows API的调用和自定义绘图。这项技术允许开发者摆脱标准窗口的限制,设计出具有独特形状和外观的应用程序。以下是对这个主题的详细阐述: 1. **不...
创建不规则窗体和控件可以提高应用的用户体验和视觉吸引力,但也会带来额外的性能开销,因为每次窗体或控件需要重绘时,都需要执行自定义的绘制逻辑。因此,在设计这类应用时,需要权衡美观与性能。 总结起来,使用...
本资源"winform创建不规则窗体和控件源码.rar.rar"包含了创建不规则窗体和控件的源代码,可以帮助开发者快速理解和实践这一技术。 创建不规则窗体的核心在于重写窗体的`OnPaint`事件处理程序,并利用GDI+(Graphics...
本资源“winform创建不规则窗体和控件源码--201903”显然是一个关于如何在C#环境下实现这一功能的代码示例。下面我们将深入探讨这个主题。 不规则窗体,通常指的是那些非矩形形状的窗体,它们可能拥有自定义的轮廓...
本资源提供的“winform创建不规则窗体和控件源码”可以帮助开发者学习和实现自定义形状的窗体和控件,为用户界面带来独特视觉效果。在本文中,我们将深入探讨如何利用C# WinForms来创建不规则窗体和控件。 首先,让...
这个“winform创建不规则窗体和控件源码__0525.rar”压缩包文件包含了实现不规则形状窗体和控件的源代码,这通常涉及到自定义绘图和窗体透明度的高级技术。 不规则窗体和控件是指那些不遵循标准矩形形状的界面元素...
本文将深入探讨如何使用C#语言在WinForm中创建不规则形状的窗体和控件,基于提供的"winform创建不规则窗体和控件源码_0520.rar"文件。 一、不规则窗体的实现原理 不规则窗体是指窗体的形状并非传统的矩形,而是可以...
这个名为"winform创建不规则窗体和控件源码_《0528》.rar"的压缩包文件,很显然,提供了关于如何在WinForms中创建非标准形状,即不规则形状的窗体和控件的源代码示例。不规则窗体是指那些不再局限于矩形边框,可以...
这个"winform创建不规则窗体和控件源码(0520_).rar"文件显然是一个包含C#代码示例的压缩包,专门用于演示如何在WinForm应用中创建非标准形状的窗口和控件,即不规则窗体和控件。不规则窗体是指那些形状并非标准矩形...