我有一个基于变量设置按钮文本的 Windows 窗体项目。字体对于可读性而言相当大,但这意味着某些单词太长而无法很好地放入按钮中,并且最后几个字符会分成多行。
是否有算法或属性可用于调整按钮内文本的大小以防止这种情况发生?
我不想尝试让文本适合一行,我只想阻止文本拆分单词。
最佳答案
如果你真的想调整字体大小,你可以尝试检测文本何时到达按钮的边界,然后减小字体大小。这里有一些代码可以帮助您入门,但我不确定如何根据按钮宽度确定文本开始换行的长度。也许还有一些我找不到的其他属性。
// Get some info from the button control
var graphics = button1.CreateGraphics();
var font = button1.Font;
var textWidth = graphics.MeasureString(button1.Text, font).Width;
// Not sure what the magic formula is to determine when the word wraps
if (textWidth > button1.Width - 25)
{
// Assign a new font based on the old one, but smaller
button1.Font = new Font(font.FontFamily, font.Size - 1,
font.Style, GraphicsUnit.Pixel);
}
关于c# - 如何阻止按钮控件中的文本在 Winforms 中将单词分成多行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54169183/