C#GDI画立体渐变圆角panel
为要处理的panel添加绘画事件,代码写在panel的Paint事件中:
private void panel1_Paint(object sender, PaintEventArgs e)
{
//(new 一个矩形,范围为panel的上半部分)
Rectangle rt1 = new Rectangle(0, 0, panel1.Width, (panel1.Height/2));
//(new一个渐变笔刷,渐变范围为上面新建的矩形,即panel的上半部分,渐变色从白色到蓝色,渐变角度LinearGradientMode.Vertical为垂直渐变)
LinearGradientBrush br = new LinearGradientBrush(rt1, Color.White, Color.Blue, LinearGradientMode.Vertical);
Graphics g = e.Graphics;//为控件创建Graphics
g.FillRectangle(br, rt1);//填充矩形
//(下面同上面的操作,渐变panel的下半部分)
LinearGradientBrush br2 = new LinearGradientBrush(rt1, Color.Blue, Color.White, LinearGradientMode.Vertical);
Rectangle rt2 = new Rectangle(0,(panel1.Height/2), panel1.Width, panel1.Height/2);
g.FillRectangle(br2, rt2);
//实现圆角形状的panel
List list = new List();//建立点集合list
int width = this.panel1.Width;
int height = this.panel1.Height;
//panel左上的点
list.Add(new Point(0, 4));
list.Add(new Point(1, 4));
list.Add(new Point(1, 3));
list.Add(new Point(2, 2));
list.Add(new Point(3, 1));
list.Add(new Point(4, 1));
list.Add(new Point(4, 0));
//panel右上的点
list.Add(new Point(width - 4, 0));
list.Add(new Point(width - 4, 1));
list.Add(new Point(width - 3, 1));
list.Add(new Point(width - 2, 2));
list.Add(new Point(width - 1, 3));
list.Add(new Point(width - 1, 4));
list.Add(new Point(width - 0, 4));
//panel右下角的点
list.Add(new Point(width - 0, height - 4));
list.Add(new Point(width - 1, height - 4));
list.Add(new Point(width - 1, height - 3));
list.Add(new Point(width - 2, height - 2));
list.Add(new Point(width - 3, height - 1));
list.Add(new Point(width - 4, height - 1));
list.Add(new Point(width - 4, height - 0));
//panel左下角的点
list.Add(new Point(4, height - 0));
list.Add(new Point(4, height - 1));
list.Add(new Point(3, height - 1));
list.Add(new Point(2, height - 2));
list.Add(new Point(1, height - 3));
list.Add(new Point(1, height - 4));
list.Add(new Point(0, height - 4));
Point[] points = list.ToArray();//将以上圆角形状的点集合转换成点数组
GraphicsPath shape = new GraphicsPath();//新建绘图路径对象
shape.AddPolygon(points);将路径转换为多边形
//将窗体的显示区域设为GraphicsPath的实例
this.panel1.Region = new System.Drawing.Region(shape);
}
C#GDI画立体渐变圆角panel相关推荐
- [html] 请使用canvas画一个渐变的长方形
[html] 请使用canvas画一个渐变的长方形 // 普通canvas绘图工具类// umd适配多种引入方式 (function(root, factory) {if (typeof define ...
- 什么?你连个三色渐变圆角按钮都需要UI切图?
废话不多说,先上效果图: 该效果其实由三部分组成: 渐变 圆角 文本 渐变 关于渐变,估计大家都不会陌生,以往都是使用gradient进行制作: shape_gradient.xml <?xml ...
- ai文字渐变_AI文字教程,用AI制作立体渐变环绕文字
@野鹿志: 本篇教程通过Ai制作立体渐变环绕文字,类似的教程之前有介绍过,本篇详解说一下3D绕转的一些其他细节,用实例来进一步了解3D绕转功能,步骤很详细,同学们可以根据步骤做出这种形式的渐变环绕文字 ...
- html圆角矩形的渐变色,canvas圆角矩形 PS制作渐变圆角矩形: 方法一:
用canvas画只有一个角是圆角的矩形,能画出来么? CSS布局HTML小编今天和大家分享各位大侠指点, 找到方法了float[] radii={12f,12f,0f,0f,0f,0f,0f,0f}; ...
- C#用GDI画任意形状的form
C#用GDI画任意形状的form代码:代码放在窗体Paint事件中: List list = new List();//首先构构造好窗体的边缘的点 list.Add(new Point(0, 4)); ...
- opencv入手小训——画立体图形
opencv入手小训--画立体图形 项目要求 用opencv程在空图上(背景为0)上画出立方体并把一张图片分别紧贴. 项目代码 #include "opencv2/core.hpp" ...
- 如何在visio中画立体图形
最近写论文的时候要画立体结构图,起初没在visio中找到立体图像,问了同门,他和我说一笔一笔画,我不信!!! 最后终于找到了 ------------------------------ 0x00 打 ...
- cad怎么画立体图形教学_CAD怎么画立体图,手把手教你画三维图形
AutoCAD是一款非常好用的软件,大部分的小伙伴都是用CAD来画二维图,实际上,这个软件还可以用来画立体图形,也就是三维图形,今天小编通过实例教大家如何画一个三维图形. 今天的实例是教大家画一个牟合 ...
- Android Paint 绘制空心渐变圆角矩形
Android Paint 绘制空心渐变圆角矩形 在onDraw()中使用Paint绘制空心的圆角矩形 代码 @Overrideprotected void onDraw(Canvas canvas) ...
最新文章
- 分布式架构的对比-EMC VMAX
- Python学习-03(集合,文件,编码)
- 一个简单的C#获取Session、设置Session类文件
- Python 类的属性和实例属性 Python 的动态语言
- css blink不闪烁_使它闪烁HTML教程–如何使用Blink标签以及代码示例
- Java、Node.js、PHP还是.Net? 无论你选谁,我都能教你一招!
- 大数据如何应用于食品追溯管理
- 使用机器学习算法打造一个简单的“微博指数”
- switch语句的ns图怎么画_switch语句流程图 c语言中swtich怎么画流程图
- linux c++ toolchain 配置文件,一步一步建立基于ARM+Linux的cross toolchain
- iCloud数据存储
- Qt 可拖拽 大小可调 方框
- Java word转pdf Linux/windows跨平台 格式完美(利用命令行调用libreoffice)
- TP房产系统_Tphouse_tpfangchan 1.2.7升级开源版多站点多城市房产系统源码带小程序
- 铁路 计算机系统维护,成都市计算机学校计算机系统维护就业前景
- Uni-app 中使用 .ttf 字体图标
- 微信24小时客服热线电话/如何转到人工服务办理
- coreldraw插件编写
- 机器学习与知识发现电子书_2019年,5本关于机器学习的免费电子书你应该知道(有资源)...
- 阿布扎比将于2023年5月举办年度投资会议
热门文章
- 【完全开源】博客园客户端UWP版(上篇)
- Oracle官方并发教程之不可变对象
- 关于APKsmail中加入代码报错All register args must fit in 4 bits
- fedora下java环境配置
- 复杂度及圈复杂介绍介绍
- axios使用post请求服务端不能获取参数的解决方法
- Ubuntu 15.10开机启动到命令行模式-转
- [Python] L1-034. 点赞 团体程序设计天梯赛GPLT
- Eclipse 提示 The given project is not a virtual component project
- java连接远程带有密码的mongodb数据库