C# 画圆角矩形

int width = panel2.Width;
            int height = panel2.Height;
            int lineWeight = 10;//边框宽
            int radio = 30;//圆周半径
            Graphics g = panel2.CreateGraphics();
            //panel1.BackColor = System.Drawing.Color.Transparent;
            Bitmap bm = new Bitmap(width, width);
            Graphics grs = Graphics.FromImage(bm);
            grs.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
            grs.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
            grs.Clear(Color.White);
            int padding = 15;//向内缩进
            //左上圆角
            grs.FillPie(Brushes.LightSalmon, padding, padding, radio * 2, radio * 2, 180, 90);
            //左下
            grs.FillPie(Brushes.LightSalmon, padding, height - 2 * radio - padding, radio * 2, radio * 2, 90, 90);
            //右上
            grs.FillPie(Brushes.LightSalmon, width - 2 * radio - padding, padding, radio * 2, radio * 2, 270, 90);
            //右下
            grs.FillPie(Brushes.LightSalmon, width - 2 * radio - padding, height - 2 * radio - padding, radio * 2, radio * 2, 0, 90);

//竖向矩形
            grs.FillRectangle(Brushes.LightSalmon, radio + padding - 1, padding, width - 2 * radio - 2 * padding + 2, height - 2 * padding);
            //横向矩形
            grs.FillRectangle(Brushes.LightSalmon, padding, radio - 1 + padding, width - 2 * padding, height - 2 * radio - 2 * padding + 2);

if (lineWeight > 0)
            {
                Pen p = new Pen(Brushes.Blue, lineWeight);
                //左上弧
                grs.DrawArc(p, padding, padding, radio * 2, radio * 2, 180, 90);
                //左下
                grs.DrawArc(p, padding, height - 2 * radio - padding, radio * 2, radio * 2, 90, 90);
                //右上
                grs.DrawArc(p, width - 2 * radio - padding, padding, radio * 2, radio * 2, 270, 90);
                //右下
                grs.DrawArc(p, width - 2 * radio - padding, height - 2 * radio - padding, radio * 2, radio * 2, 0, 90);

//上框
                grs.DrawLine(p, radio + padding - 1, padding, width - radio - padding + 2, padding);
                //下
                grs.DrawLine(p, radio + padding - 1, height - padding, width - radio - padding + 2, height - padding);
                //左
                grs.DrawLine(p, padding, radio + padding - 1, padding, height - radio - padding + 2);
                //右
                grs.DrawLine(p, width - padding, radio + padding - 1, width - padding, height - radio - padding + 2);
            }

g.DrawImage(bm, 0, 0);
            grs.Dispose();
            bm.Dispose();
            g.Dispose();

时间: 2024-10-08 19:39:04

C# 画圆角矩形的相关文章

android 画虚线、实线,画圆角矩形,一半圆角

1.画虚线,实线: 建立dotted_line_gray.xml文件放在drawable文件夹下面. android:shape="line" 可以修改你想要的形状 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape=&quo

用选框工具画圆角矩形

1.先用矩形选框工具画一个矩形 2.点击菜单(选择-修改-平滑),设置数值 3.反选选区------------------ctrl+shift+i

PhotoShop中画圆角矩形最简单方法(图文并茂)!

1. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZHhubjUyMA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" > 2. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZHhubjUyMA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/disso

Web流程图绘制使用raphael

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文要实现一个流程图的绘制,最终的目标是实现流程图的自动绘制,并可进行操作,直接点击流程图上对应的方框就可以让后台跑相应的程序. 一.插件介绍 1.图形绘制raphael 其中图形绘制使用了raphael,下载地址:http://raphaeljs.com,它的功能非常强大. 中文帮助教程:http://html5css3webapp.com/raphaelApi.htm#Paper.

JavaGraphics类的绘图方法

Graphics类提供基本绘图方法,Graphics类提供基本的几何图形绘制方法,主要有:画线段.画矩形.画圆.画带颜色的图形.画椭圆.画圆弧.画多边形.画字符串等. 1. 画线段:在窗口中画一条线段,可以使用Graphics类的drawLine()方法: /** * 在此图形上下文的坐标系中,使用当前颜色在点 (x1, y1) 和 (x2, y2) 之间画一条线 * * @param x1 * 第一个点的 x 坐标 * @param y1 * 第一个点的 y 坐标 * @param x2 *

赵雅智_Android_Canvas

Android中使用图形处理引擎,2D部分是android SDK内部自己提供,3D部分是用Open GL ES 1.0. android.graphics和android.graphics.drawable包 大部分2D使用的api都在android.graphics和android.graphics.drawable包中. 他们提供了图形处理相关的: Canvas.ColorFilter.Point(点)和RetcF(矩形)等 还有一些动画相关的:AnimationDrawable. Bit

Android利用canvas画各种图形

canvas通俗的说就是一张画布,我们可以使用画笔paint,在其上面画任意的图形. 原理: 可以把canvas视为Surface的替身或者接口,图形便是绘制在Surface上的.Canvas封装了所有的绘制调用.通过Canvas, 绘制到Surface上的内容首先存储到一个内存区域(也就是对应的Bitmapz中),该Bitmap最终会呈现到窗口上. 使用: 1.Canvas可以直接new Canvas(): 2.在View中重写OnDraw()方法,里面有一个Canvas,今天讨论的内容. 方

IOS用CGContextRef画各种图形(文字、圆、直线、弧线、矩形、扇形、椭圆、三角形、圆角矩形、贝塞尔曲线、图片)(转)

Graphics Context是图形上下文,可以将其理解为一块画布,我们可以在上面进行绘画操作,绘制完成后,将画布放到我们的view中显示即可,view看作是一个画框. 自己学习时实现的demo,希望对大家有帮助,具体的实现看代码,并有完美的注释解释,还有一些对我帮助的博文供大家参考.都在代码里面. 看一下demo效果图先: 自定义CustomView类,CustomView.h: [cpp]  view plain copy #import <UIKit/UIKit.h> #import 

QT 窗体控件的透明度设置(三种方法)

整个窗体 当设置QT的窗体(QMainWindow, QDialog)时,直接用 [cpp] view plain copy targetForm->setWindowOpacity() 函数即可实现,效果为窗体及窗体内所有控件都透明化了. 二.自定义页面或控件 当设置一个QWidget(一般自定义页面或控件时用QWidget)时,直接设置其窗体透明度无法实现透明效果,目前找到的方法是将整个QWidget当做图形元素,对该图形元素进行设置透明度效果, [cpp] view plain copy