簡體   English   中英

在動態創建的文本框的代碼隱藏中將文本框的高度設置為auto

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM