【发布时间】:2010-11-30 00:19:36
【问题描述】:
我在数据库中有一个字段,这个字段有一个最大长度,我想将一个文本框设置为适当的宽度。我正在运行时创建文本框。如何计算 width 属性的值?
例如,如果我有一个名为 IDClient 的字段 nvarchar(5),并且 font-Size 为 13,我想创建一个宽度足以写入 5 个字符的 texbox。
【问题讨论】:
标签: c# wpf textbox width font-size
我在数据库中有一个字段,这个字段有一个最大长度,我想将一个文本框设置为适当的宽度。我正在运行时创建文本框。如何计算 width 属性的值?
例如,如果我有一个名为 IDClient 的字段 nvarchar(5),并且 font-Size 为 13,我想创建一个宽度足以写入 5 个字符的 texbox。
【问题讨论】:
标签: c# wpf textbox width font-size
也许应该使用TextRenderer.MeasureText(string, font)。
这里有一个小样本可能会对你有所帮助
//Get this value from somewhere...
TextBox textBox = new TextBox();
int maxWidth = 10;
int extraSpace = 3;
//Create sample string
StringBuilder sb = new StringBuilder(maxWidth);
sb.Append('w', maxWidth);
//Measure text
Size size = TextRenderer.MeasureText(sb.ToString(), textBox.Font);
//Set width of TextBox to needed width
textBox.Width = size.Width + extraSpace;
【讨论】:
指定
输入类型='text' size='5' width='w' ........>
您可以计算 w=num_characters * k。 其中 k 是常数。首先保持 k = 15。 然后进行反复试验,直到找到最合适的。
【讨论】: