C# Winform重绘按钮

本文通过C#的GDI+技术,介绍如何在Winform应用中重绘按钮,实现圆角边框、矩形边框和无边框效果,并涵盖按钮的悬停和点击事件。教程还提到,该方法可扩展应用于创建具有圆角功能的输入框等其他控件。
摘要由CSDN通过智能技术生成

目的:学习了解GDI绘制、在复刻Winform按钮,实现圆角边框/矩形边框/无边框,以及悬停、点击等事件

引申:可根据按钮的重绘,拓展到输入框的圆角功能


一、环境

VS2022

新建操作:1、新建->项目->Window窗口应用(.NET Framework)->创建(取个自己喜欢的命名)

2、对于新建的项目 右键 添加->类->添加(取个自己喜欢的命名)


二、代码

using System;
using System.ComponentModel;
using System.Diagnostics;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.IO;
using System.Windows.Forms;

namespace ControlTest
{
    internal class buttonRY : System.Windows.Forms.Control
    {
       
        private GraphicsPath g;
        private Rectangle cr; // 客户端矩形区域
        private ControlState ControlState = ControlState.Normal; //控件状态
        private Color LocalColorRY { get; set; } //控件当前的背景
        public buttonRY()
        {
            //画面闪烁问题与双缓冲技术
            this.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.ResizeRedraw | ControlStyles.AllPaintingInWmPaint, true);
            this.UpdateStyles();
        }


        #region 自定义面板属性
        private Color _BackColor = Color.FromArgb(253, 253, 253); //#fdfdfd
        //[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
        [Description("背景颜色"), Category("自定义"), Browsable(true)]
        public Color BackColorRY { get { return _BackColor; } set { _BackColor = value; this.Refresh(); } }

        private Color _HoverColor = Color.FromArgb(224, 238, 249); // #e0eef9
        [Description("悬停时的颜色"), Category("自定义"), Br
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值