如何在C#中旋转标签?

我想显示一个旋转90度的标签(所以我可以将一堆标签放在桌子顶部作为标题)。 是否有捷径可寻?

您需要自己编写或使用自定义控件。

您可以开始的代码项目文章是C#中的自定义文本 – 定向控件 – 第I部分(标签控制) 。 这包含额外的function,因此如果您愿意,您应该能够将其削减。

以下是一些感兴趣的代码:

///  /// This is a lable, in which you can set the text in any direction/angle ///  #region Orientation //Orientation of the text public enum Orientation { Circle, Arc, Rotate } public enum Direction { Clockwise, AntiClockwise } #endregion public class OrientedTextLabel : System.Windows.Forms.Label { #region Variables private double rotationAngle; private string text; private Orientation textOrientation; private Direction textDirection; #endregion #region Constructor public OrientedTextLabel() { //Setting the initial condition. rotationAngle = 0d; textOrientation = Orientation.Rotate; this.Size = new Size(105,12); } #endregion #region Properties [Description("Rotation Angle"),Category("Appearance")] public double RotationAngle { get { return rotationAngle; } set { rotationAngle = value; this.Invalidate(); } } [Description("Kind of Text Orientation"),Category("Appearance")] public Orientation TextOrientation { get { return textOrientation; } set { textOrientation = value; this.Invalidate(); } } [Description("Direction of the Text"),Category("Appearance")] public Direction TextDirection { get { return textDirection; } set { textDirection = value; this.Invalidate(); } } [Description("Display Text"),Category("Appearance")] public override string Text { get { return text; } set { text = value; this.Invalidate(); } } #endregion #region Method protected override void OnPaint(PaintEventArgs e) { Graphics graphics = e.Graphics; StringFormat stringFormat = new StringFormat(); stringFormat.Alignment = StringAlignment.Center; stringFormat.Trimming = StringTrimming.None; Brush textBrush = new SolidBrush(this.ForeColor); //Getting the width and height of the text, which we are going to write float width = graphics.MeasureString(text,this.Font).Width; float height = graphics.MeasureString(text,this.Font).Height; //The radius is set to 0.9 of the width or height, b'cos not to //hide and part of the text at any stage float radius = 0f; if (ClientRectangle.Width 

您还可以查看Windows ToolStrip控件。 它有一个TextDirection选项,可以设置为Vertical90或Vertical270,这将以适当的方向旋转Label文本。

  • 概述: ToolStrip类 (MSDN)

  • 关于其使用的简短video: http : //msdn.microsoft.com/en-us/vstudio/bb798042对于轮换,请参见3:05进行轮换。