<TextBox Height="?" Width="?" AcceptReturn="true" />
高度=随机; 宽度=随机; 例如,高度为 60,宽度为 100。 如何控制输入的文本长度小于TextBox的大小
最佳答案
编辑:
等等,什么?您想将字符数限制为文本框的宽度吗?为什么会这样?
编辑2:
您可以使用 Graphics.MeasureString 来测量字符串的长度。这是一个可以完成您想要的操作的扩展方法:
public static class TextBoxExtension
{
public static int VisibleCharCount(this textBox textBox)
{
int count = 0;
do {
count++;
var testString = new string('X', count);
var stringWidth = System.Drawing.Graphics.MeasureString(testString, textBox.Font);
} while (stringWidth < textBox.Width);
if (stringWidth == textBox.Width)
return count;
else
return count-1;
}
}
像这样使用它:
myTextBox.MaxLength = myTextBox.VisibleCharCount();
编辑3:
如果您的 TexBox 是 MultiLine 并且您还想考虑高度,则可以使用采用 Size 的 MeasureString 重载。我让您相应地修改我的示例。
关于c# - wpf,如何限制TextBox的MaxLength?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4334792/