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));
        }
	}
}
相关推荐
Crazy Struggle11 天前
.NET 8 gRPC 实现高效100G大文件断点续传工具
文件上传·winform·.net 8.0
开箱测评小汪16 天前
WinForms视频播放开发实战指南
winform
刚子编程19 天前
C# WinForms 实现打印监听组件
开发语言·c#·winform·打印监听组件
CSharp精选营20 天前
C# WinForms 实现打印监听组件
c#·winform·打印监听组件
我本梁人23 天前
WinForms中实现Adobe PDF Reader实现旋转PDF功能
pdf·winform
TA远方1 个月前
【C#】一个简单的http服务器项目开发过程详解
服务器·http·c#·wpf·web·winform·console
界面开发小八哥1 个月前
界面控件DevExpress WinForms v24.2——PDF Viewer功能升级
pdf·c#·界面控件·winform·devexpress·ui开发
界面开发小八哥1 个月前
界面控件DevExpress WinForms中文教程:Banded Grid View - API
.net·界面控件·winform·devexpress·ui开发·用户界面
csdn_aspnet1 个月前
C# WinForm treeView 全选反选 点击过快节点选中状态未选中或选中状态未取消
c#·winform
csdn_aspnet2 个月前
C# DataGridView 选中所有复选框
c#·winform·datagridview