Winform中实现会旋转的Label控件

csharp 复制代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace UserCtrlLib
{
    public class RotateLabel:Label
    {
		public RotateLabel() {
			this.AutoSize = false;
            this.BackColor = Color.Transparent;
        }
		private float rotateAngle;
        [Description("旋转角度")]
        [Category("自定义外观")]
        public float RotateAngle
		{
			get { return rotateAngle; }
			set 
			{ 
				rotateAngle = value;
				Invalidate();
			}
		}

        protected override void OnPaint(PaintEventArgs e)
        {
            Graphics g = e.Graphics;
            float w = Width;
            float h = Height;
            //将graphics坐标原点移到矩形中心点
            g.TranslateTransform(w / 2, h / 2);
            g.RotateTransform(RotateAngle);
            SizeF sz = g.MeasureString(Text, this.Font);
            float x = -sz.Width / 2;
            float y = -sz.Height / 2;
            Brush brush = new SolidBrush(this.ForeColor);
            g.DrawString(Text, this.Font, brush, new PointF(x, y));
        }
	}
}
相关推荐
ysdysyn2 天前
C# winfrom实现微信(其他应用)自动跟随C#窗口,拖动页面自动恢复到固定位置
开发语言·微信·c#·winform
小乖兽技术7 天前
WinForms 中使用 MVVM 模式构建应用:实现登录页面、页面导航及 SQLite 数据库连接完整框架搭建过程
数据库·sqlite·c#·winform·dotnet
WangMing_X9 天前
C# 单个函数实现各进制数间转换
java·开发语言·算法·c#·winform·软件
Crazy Struggle15 天前
.NET 开源扁平化、美观的 C/S 控件库
.net·winform·控件库
威斯软科的老司机22 天前
一波基于winform和wpf的桌面端界面,历久弥新。
wpf·winform·桌面界面
界面开发小八哥25 天前
DevExpress WinForms中文教程:Data Grid - 如何点击获取信息?
c#·界面控件·winform·devexpress·ui开发
Crazy Struggle1 个月前
.NET 8.0 酒店管理系统设计与实现
.net·winform·酒店管理系统
界面开发小八哥2 个月前
DevExpress WinForms v24.1新版亮点:升级的HTML & CSS支持
css·html·界面控件·winform·devexpress·用户界面
界面开发小八哥2 个月前
界面控件DevExpress中文教程:如何PDF图形对象的可见性?
ui·pdf·wpf·界面控件·winform·devexpress
大浪淘沙胡2 个月前
Winform实现石头剪刀布小游戏
winform·enum·石头剪刀布