在StackPanel中的特定元素之后创建元素

时间:2016-01-06 13:01:58

标签: c# xaml win-universal-app

我需要使用代码隐藏在另一个textbox之后立即创建一个XAML textbox。也许是这样的:

<StackPanel>
    <TextBox Name="TextBox1"/>
    <TextBox Name="TextBox2"/>
    <TextBox Name="TextBox3"/>
</StackPanel>

<StackPanel>
    <TextBox Name="TextBox1"/>
    <TextBox Name="TextBox2"/>
    <TextBox Name="InsertedTextBox"/> <!--This textbox was inserted after 'TextBox2'-->
    <TextBox Name="TextBox3"/>
</StackPanel>

我的名字是textbox我希望之后插入另一个textbox。我可以知道如何在{1}}之后插入一个我知道名字的textbox吗?

注意:我正在为通用Windows编程。

提前致谢。

2 个答案:

答案 0 :(得分:1)

您需要命名StackPanel以在代码中引用它,并且您需要前面的TextBox索引:

var index = this.stackPanel1.Children.IndexOf(TextBox2);
this.stackPanel1.Children.Insert(index + 1, new TextBox { Name = "InsertedTextBox" });

答案 1 :(得分:0)

你可以试试这个,请注意我给了StackPanel一个名字。

// Where 2 is the index.
this.StackPanel1.Children.Insert(2, new TextBox());