gpt4 book ai didi

Windows 窗体中的 C# 垂直标签

转载 作者:IT王子 更新时间:2023-10-29 04:18:18 25 4
gpt4 key购买 nike

是否可以在 Windows Forms 中垂直显示标签? ?

最佳答案

标签很简单,您只需覆盖 Paint 事件并垂直绘制文本即可。请注意,GDI 针对水平绘制文本进行了优化。如果您旋转文本(即使旋转 90 度的倍数),它看起来会更糟。

也许最好的办法是将您的文本(或让标签自己绘制)绘制到位图上,然后显示旋转的位图。

一些用于绘制带有垂直文本的自定义控件的 C# 代码。请注意,如果文本不是水平的,ClearType 文本将无法工作:

using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;


public partial class VerticalLabel : UserControl
{
public VerticalLabel()
{
InitializeComponent();
}

private void VerticalLabel_SizeChanged(object sender, EventArgs e)
{
GenerateTexture();
}

private void GenerateTexture()
{
StringFormat format = new StringFormat();
format.Alignment = StringAlignment.Center;
format.LineAlignment = StringAlignment.Center;
format.Trimming = StringTrimming.EllipsisCharacter;

Bitmap img = new Bitmap(this.Height, this.Width);
Graphics G = Graphics.FromImage(img);

G.Clear(this.BackColor);

SolidBrush brush_text = new SolidBrush(this.ForeColor);
G.TextRenderingHint = System.Drawing.Text.TextRenderingHint.SingleBitPerPixelGridFit;
G.DrawString(this.Name, this.Font, brush_text, new Rectangle(0, 0, img.Width, img.Height), format);
brush_text.Dispose();

img.RotateFlip(RotateFlipType.Rotate270FlipNone);

this.BackgroundImage = img;
}
}

关于Windows 窗体中的 C# 垂直标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1371943/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com