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));

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏mini188

学习笔记 :DrawText

最近在做一个TStringGrid的自绘处理,在画文字处理上遇到了高度的计算问题。后来经过一段时间还是找到了一些方法: 1、使用TLabel   这个方法是有点...

2615
来自专栏wblearn

Java小程序祝国庆快乐祝大家国庆节快乐

上面是用java的JFrame为基础实现的效果,下面用面向对象的思考分析并实现此效果:

1021
来自专栏别先生

JAVA学习AWT绘图

package com.graphics; import java.awt.Graphics; import javax.swing.JFrame; imp...

2707
来自专栏函数式编程语言及工具

Scalaz(23)- 泛函数据结构: Zipper-游标定位

外面沙尘滚滚一直向北去了,意识到年关到了,码农们都回乡过年去了,而我却留在这里玩弄“拉链”。不要想歪了,我说的不是裤裆拉链而是scalaz Zipper,一...

20910
来自专栏Golang语言社区

GO-字符串常用操作

package main import ( "fmt" "strconv" "strings" ) func ma...

3445
来自专栏C/C++基础

C#GDI绘制自定义字体

private void PaintMessageBox()         {             Graphics g = this.panel1....

963
来自专栏小白安全

JavaScript中style属性对照表

盒子标签和属性对照 CSS语法 (不区分大小写) JavaScript语法 (区分大小写) bo...

2825
来自专栏向治洪

android之View绘制

Android系统的视图结构的设计也采用了组合模式,即View作为所有图形的基类,Viewgroup对View继承扩展为视图容器类,由此就得到了视图部分的基本...

1619
来自专栏前端知识分享

第87天:HTML5中新选择器querySelector的使用

1、document.querySelector("selector"); selector:根据CSS选择器返回第一个匹配到的元素,如果没有匹配到,则返回nu...

1403
来自专栏Golang语言社区

GO-字符串常用操作

package main import ( "fmt" "strconv" "strings" ) func ma...

3777

扫码关注云+社区

领取腾讯云代金券