我正在通过代码动态创建一个文本框,并将其添加到 LayoutRoot。我希望文本框支持多行,所以我将AcceptsReturn
属性设置为true
和TextWrapping
属性Wrap
。我在另一个问题中读到要设置Height
as Auto
,我们必须使用double.NaN
,我已经这样做了。但是,当我添加它时,它的高度是无限的,并且覆盖了整个空间。我只希望文本框最初是单行的,并在添加行时让它增加高度。请帮我解决这个问题。
问问题
4839 次
2 回答
4
把你包TextBox
在一个StackPanel
. 如果你是通过代码来做的,你可以做这样的事情,例如:
public MainPage()
{
InitializeComponent();
var textBox = new TextBox
{
AcceptsReturn = true,
Height = Double.NaN,
TextWrapping = TextWrapping.Wrap
};
var stackPanel = new StackPanel();
stackPanel.Children.Add(textBox);
this.LayoutRoot.Children.Add(stackPanel);
}
于 2012-07-08T17:47:52.653 回答
0
一个不错的选择是在网格中创建一个可调整大小的行并将 textBox 放在那里。
<RowDefinition MinHeight="20"/>
将您的 TextBox 放在这一行:
Grid.SetRow(textBox,1);
现在,如果 textBox 的高度是 Auto 或 Double.NaN,它应该适当地调整自身和行的大小。
于 2012-07-08T18:33:58.353 回答