如何在Silverlight中计算自动扩展文本框的正确高度?

时间:2008-11-06 14:10:49

标签: .net wpf silverlight

在我的Silverlight应用程序中,我希望每次用户点击Enter时都会展开多行文本框。

困难的部分是如何根据文本行数计算正确的高度。

我尝试过以下操作但文本框太小了:

box.Height = box.FontSize*lineCount + box.Padding.Top + box.Padding.Bottom + box.BorderThickness.Top + box.BorderThickness.Bottom;

我在这里缺少什么?或者它可以以某种方式自动完成?

谢谢, 雅各布

编辑:我怀疑问题出现在FontSize属性中(是否使用其他尺寸单位?)

2 个答案:

答案 0 :(得分:3)

这似乎是文本框开箱即用的方式。只需确保在文本框中设置AcceptsReturn =“True”即可。另外,请确保不设置文本框的高度,以便为您计算。

答案 1 :(得分:0)

TextBox将触发SizeChanged事件,并且还会设置ActualHeight属性。

我不认为在Silverlight 2中就是这种情况,当我不得不使用具有相同字体的TextBlock,将填充设置为4,并设置相同的文本,并得到{{1关闭那个。