Csharp/C#教程:如何在C#中旋转标签?分享


如何在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文本。

上述就是C#学习教程:如何在C#中旋转标签?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注---计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1025634.html

(0)
上一篇 2022年1月8日
下一篇 2022年1月8日

精彩推荐