gpt4 book ai didi

.net - 减少 WinForms 按钮中文本周围的填充

转载 作者:行者123 更新时间:2023-12-04 00:45:19 25 4
gpt4 key购买 nike

我有一个将在触摸屏系统上使用的应用程序,它包含许多相当大的按钮(~100px 正方形)。
每个按钮将包含 1 到 4 行文本(通常每行一个单词)。
由于按钮中的大量填充,我不得不减小文本的大小,使其几乎无法阅读,但是如果我能够减少内部填充以便文本可以直接绘制到边框,那我就没有问题了。
我试图将控件的填充减少到零,如下所示,但这没有帮助。

this.Text = _label;
this.Font = new Font(this.Font.FontFamily, (float) _size);
this.Padding = new Padding(0);
问题示例如下所示:
Button with broken text
正如您所看到的,“概述”一词有足够的空间可以放在一行中,但是如何在不减小字体大小的情况下实现这一目标?我不喜欢不得不重写控件的文本绘制代码的想法。
编辑:我注意到将填充增加到高达 300 的各种值,对控件的内部填充没有影响。另外作为引用,我使用的按钮是我从 Windows.Forms.Button 类继承的控件,因为我需要添加一些属性,但是我没有干扰任何 Button 自己的方法。

最佳答案

您还可以简单地覆盖您正在继承的 Button 控件的 OnPaint() 方法,并省略调用 base.OnPaint(),并将其替换为您自己的绘制代码。

    protected override void OnPaint(PaintEventArgs pevent)
{
//omit base.OnPaint completely...

//base.OnPaint(pevent);

using (Pen p = new Pen(BackColor))
{
pevent.Graphics.FillRectangle(p.Brush, ClientRectangle);
}

//add code here to draw borders...

using (Pen p = new Pen(ForeColor))
{
pevent.Graphics.DrawString("Hello World!", Font, p.Brush, new PointF(0, 0));
}
}

关于.net - 减少 WinForms 按钮中文本周围的填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6107108/

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