C#自定义圆角按钮后,按钮上的text无法显示在按钮上
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Drawing.Drawing2D;
namespace CustomerUI
{
public partial class RundEckelButton : Button
{
private int radius; //半径
[CategoryAttribute("布局"), BrowsableAttribute(true), ReadOnlyAttribute(false)]
public int Radius
{
set
{
radius = value;
}
get
{
return radius;
}
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaintBackground(e);
GraphicsPath path = new GraphicsPath();
path.AddArc(0, 0, radius, radius, 180f, 90f);
path.AddArc(this.Width - radius-1, 0, radius, radius, 270f, 90f);
path.AddArc(this.Width-radius-1, this.Height - radius-1, radius, radius, 0f, 90f);
path.AddArc(0 , this.Height - radius-1, radius, radius, 90f, 90f);
path.CloseFigure();
this.Region = new System.Drawing.Region(path);
}
public RundEckelButton()
{
radius = 10;
this.FlatStyle = FlatStyle;
this.FlatAppearance.BorderSize = 1;
}
private void RundEckelButton_Load(object sender, EventArgs e)
{
}
}
}

using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Drawing.Drawing2D;
namespace CustomerUI
{
public partial class RundEckelButton : Button
{
private int radius; //半径
[CategoryAttribute("布局"), BrowsableAttribute(true), ReadOnlyAttribute(false)]
public int Radius
{
set
{
radius = value;
}
get
{
return radius;
}
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaintBackground(e);
GraphicsPath path = new GraphicsPath();
path.AddArc(0, 0, radius, radius, 180f, 90f);
path.AddArc(this.Width - radius-1, 0, radius, radius, 270f, 90f);
path.AddArc(this.Width-radius-1, this.Height - radius-1, radius, radius, 0f, 90f);
path.AddArc(0 , this.Height - radius-1, radius, radius, 90f, 90f);
path.CloseFigure();
this.Region = new System.Drawing.Region(path);
}
public RundEckelButton()
{
radius = 10;
this.FlatStyle = FlatStyle;
this.FlatAppearance.BorderSize = 1;
}
private void RundEckelButton_Load(object sender, EventArgs e)
{
}
}
}

...全文
相关推荐
C#winform按钮风格封装
支持各种C# button风格替换,以及各种按钮功能和风格变化。
C#实现自定义水晶按钮控件 (附完整源码)
C#实现自定义水晶按钮控件 (附完整源码)
C# WinForm自定义玻璃按钮控件设计与实现
在数字界面中,“玻璃”从来不是真实的物理材质,而是一种拟物化视觉隐喻。它的关键特征包括:透明/半透明背景:能隐约看到背后的窗口内容;垂直渐变填充:顶部亮、底部暗,模拟光线入射角度;高光层叠加:顶部或中心区域有明亮反光;内外双描边:内侧白边增强立体感,外侧灰边营造阴影;圆角轮廓 + 抗锯齿:边缘柔滑,避免生硬切割感;动态状态反馈:鼠标进入、按下等操作触发外观变化。这些元素共同作用,欺骗人眼产生“这是块立体玻璃”的错觉。
C# 自定义 Button 控件开发:3 步实现鼠标悬停变色与图标切换
本文详细介绍了如何在C#中开发自定义Button控件,通过3个步骤实现鼠标悬停变色与图标切换功能。从创建控件基础框架到实现动态交互属性和处理鼠标事件,帮助开发者轻松增强WinForms应用程序的UI交互体验。
登录窗体的19种效果.doc
登录窗体的19种效果.doc


.NET Framework
