GDI+绘制半圆按钮

新建一个用户控件:

public partial class UserControl1 : UserControl
    {
        public UserControl1()
        {
            InitializeComponent();
        }

        protected override void OnPaint(PaintEventArgs e)
        {
            base.OnPaint(e);

            //设置控件区域
            GraphicsPath path = new GraphicsPath();
            path.AddPie(0, 0, this.Width, this.Height, 180, 180);
            this.Region = new Region(path);

            //获取画笔
            using (Graphics g = this.CreateGraphics())
            {
                g.FillPie(Brushes.Pink, new Rectangle(0, 0, this.Width, this.Height), 180, 180);//绘制半圆

                g.DrawString(Text, new Font("微软雅黑", 12, FontStyle.Regular), Brushes.Black, TextPosition);//绘制显示文本
            }
        }

        /// <summary>
        /// 公开属性,修改文本显示位置
        /// </summary>
        public PointF TextPosition
        {
            get;
            set;
        }
    }

窗体调用代码:

 this.userControl11.Text = "Hello World.";
 this.userControl11.TextPosition = new PointF(this.userControl11.Width / 4, this.userControl11.Height / 4);

效果图:

类似的原理,可以定义任意形状的按钮。

时间: 2025-01-19 23:03:10

GDI+绘制半圆按钮的相关文章

使用GDI绘制验证码

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace 使用GDI绘制验证码B { public parti

新手们的GDI+绘制方格

//绘制panel控件触发的事件 //不可在窗体加载时绘制方格        private void panel1_Paint(object sender, PaintEventArgs e)        {            int rowNum = 12;//行数            int colNum = 15;//列数:            Pen pen = new Pen(Color.Black);//实例化一个"画笔"            Brush br

D2D引擎与GDI\GDI+绘制效果对比

本例主要是对比D2D和GDI在绘制文字.线条的区别,以及D2D与GDI+在绘制图片时的区别. D2D是基于COM组件开发的,使用前的CoInitialize(NULL)是必须的:另外,GDI+的初始化GdiplusStartup()也别忘了. 废话少说,完整代码如下: // D2DDemo.cpp : 定义应用程序的入口点. // #include "stdafx.h" #include "D2DDemo.h" #include <D2D1.h> #in

通过GDI+绘制 验证码

只为了记录下自己的学习历程,方便日后查看 现在开始言归正传,以下为其完整代码附上 GDI+绘制验证码 以下为运行结果图

MFC 用gdi绘制填充多边形区域

MFC 用gdi绘制填充多边形区域 这里的代码是实现一个三角形的绘制,并用刷子填充颜色 在OnPaint()函数里面 运用的是给定的三角形的三个点,很多个点可以绘制多边形 [cpp] view plaincopy CBrush br(RGB(40,130,170)); CRgn rgn; CPoint arrpt[3]; arrpt[0].x = m_rcAT.right-8; arrpt[0].y = m_rcAT.top+m_rcAT.Height()*2/5; arrpt[1].x = a

C#利用GDI+绘制旋转文字等效果

C#中利用GDI+绘制旋转文本的文字,网上有很多资料,基本都使用矩阵旋转的方式实现.但基本都只提及按点旋转,若要实现在矩形范围内旋转文本,资料较少.经过琢磨,可以将矩形内旋转转化为按点旋转,不过需要经过不少的计算过程.利用下面的类可以实现该功能. [csharp] view plaincopy using System; using System.Collections.Generic; using System.Drawing; using System.Drawing.Drawing2D;

C#利用GDI+绘制旋转文字等效果实例

本文实例讲述了C#利用GDI+绘制旋转文字等效果的方法,是非常实用的技巧.分享给大家供大家参考之用.具体如下: C#中利用GDI+绘制旋转文本的文字,网上有很多资料,基本都使用矩阵旋转的方式实现.但基本都只提及按点旋转,若要实现在矩形范围内旋转文本,资料较少.经过琢磨,可以将矩形内旋转转化为按点旋转,不过需要经过不少的计算过程.利用下面的类可以实现该功能. 具体实现代码如下: using System; using System.Collections.Generic; using System

C#GDI 绘制线段(实线或虚线)、矩形、字符串、圆、椭圆

C#GDI 绘制线段(实线或虚线).矩形.字符串.圆.椭圆 绘制基本线条和图形 比较简单,直接看代码. 1 Graphics graphics = e.Graphics; 2 3 //绘制实线 4 using (Pen pen = new Pen(Color.Black, 2)) 5 { 6 pen.DashStyle = System.Drawing.Drawing2D.DashStyle.Solid; //实现 7 graphics.DrawLine(pen,0,10,100,10); 8

使用GDI+绘制的360风格按钮控件(使用CN_DRAWITEM消息重绘,并使用TGPGraphics,TGPPen,TGPImage,TGPBitmap等)good

将下面的代码拷贝到一个单元中,创建一个包,加入这个单元后安装.使用的时候设置好背景颜色,边框颜色,图标(png格式)相对路径的文件名称.这个控件可以利用PNG图像的颜色透明特性,背景色默认透明度为50%,可以将按钮后面的内容显示出来.GDIPAPI, GDIPOBJ, GDIPUTIL三个单元可用万一的博客上寻找下载地址. unit u360StyleButton;  interface    uses    SysUtils, Classes, Controls, StdCtrls,Graph