2014-01-09 2 views
1

мне нужно, чтобы создать текстовое поле динамически и добавить его в StackPanel:Как создать текстовое поле динамически и добавить его в StackPanel

Существует разрыв между текстовыми полями штабелирования наверх друг с другом.

Когда нажата кнопка, она создаст текстовое поле и добавит его динамически.

Благодаря

<StackPanel 
    Orientation="Horizontal" 
    HorizontalAlignment="Left" 
    Height="130" 
    Margin="90,190,0,0" 
    VerticalAlignment="Top" 
    Width="1190"> 

</StackPanel> 

ответ

3

Вы должны изменить XAML, во-первых, StackPanel должны есть имя, в противном случае вы не может достичь этого м C#:

<StackPanel x:Name="MyStackPanel" 
Orientation="Horizontal" 
HorizontalAlignment="Left" 
Height="130" 
Margin="90,190,0,0" 
VerticalAlignment="Top" 
Width="1190"> 

И вы также можете поймать событие для динамически создаваемых объектов.

TextBox myTextBox = new TextBox() { Text = "txt1", Width=100, Height=40, FontSize=26}; 
myTextBox.TextChanged += myTextBox_TextChanged; 
StackPanel1.Children.Add(myTextBox); 


void myTextBox_TextChanged(object sender, TextChangedEventArgs e) 
{ 
     //Catch myTextBox's TextChanged Event 
} 
+0

Как сделать каждый стек текстового блока Ontop одним другим? Ориентация StackPanel = горизонтальная ок? Как добавить Margin myTextBox.margin = "8,8,8,8"? – MilkBottle

+2

TextBox myTextBox = new TextBox() {Text = "txt1", Width = 100, Height = 40, FontSize = 26, Margin = new Толщина (8, 8, 8, 8)}; Маржа такая, но я не уверен, как вы можете добавить последнее текстовое поле вверху Stackpanel. –

+0

U справа. TextBox идет вниз при добавлении нового текстового поля. – MilkBottle

1

Попробуйте

XAML

<StackPanel x:Name="StackPanel1" > 
</StackPanel> 

код

TextBox txt1 = new TextBox() { Text = "txt1" }; 
TextBox txt2 = new TextBox() { Text = "txt2" }; 
StackPanel1.Children.Add(txt1); 
StackPanel1.Children.Add(txt2); 
Смежные вопросы