[英]Setting height of textbox to auto in code-behind for a dynamically created textbox
我通過代碼動態創建文本框,並將其添加到LayoutRoot。 我希望文本框支持多行,所以我將AcceptsReturn
屬性設置為true
,將TextWrapping
屬性設置為Wrap
。 我在另一個問題中讀到將Height
設置為Auto
,我們必須使用double.NaN
,我已經完成了這個。 但是,當我添加它時,它的高度是無限的,並且覆蓋了整個空間。 我只是希望文本框最初是單行,並讓它在添加行時增加高度。 請幫我解決這個問題。
將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);
}
一個很好的選擇是在網格中創建一個可調整大小的行並將textBox放在那里。
<RowDefinition MinHeight="20"/>
將TextBox放在此行中:
Grid.SetRow(textBox,1);
現在,如果textBox的高度為Auto或Double.NaN,則應適當調整自身和行的大小。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.