/ / Як правильно додати динамічний контроль? - c #, microsoft-metro, windows-store-apps, winrt-xaml

Як правильно додати динамічний контроль? - c #, microsoft-metro, windows-store-apps, winrt-xaml

Я маю наступний код:

        for (int i = 0; i < 4; i++)
{

TextBlock Tb = new TextBlock();
Tb.Text = k[3+i];
Tb.Width = 205*((i<2)?1:0.5);
Tb.Height = (stala*10)/3;
Tb.Margin = margin;
margin.Top += ((stala * 10) / 3);
this.Str1.Children.Add(Tb);

}

Текстові блоки додаються, але лише на секунду ... коли анімація припиняється, елементи керування також розпадаються ... Чи може хто-небудь сказати мені, чому?

Відповіді:

0 для відповіді № 1

Ні, якщо вам потрібен набір повторюваних елементів управління наruntime, які невідомої кількості на designtime, правильний спосіб полягає в тому, щоб використовувати itemscontrol або який-небудь контроль, який успадковує від itemscontrol, як gridview, і прив'язує, що itemscontrol до властивості оцінюваного колекції. Потім ви маніпулюєте членами спостережуваноїколекції, а елементиконтролю створюватимуть для вас відповідні елементи керування відповідно до його властивості itemstemplate.

<ItemsControl ItemsSource="{Binding}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel>
<StackPanel.ChildrenTransitions>
<AddDeleteThemeTransition />
</StackPanel.ChildrenTransitions>
</StackPanel>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBox Text="{Binding}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>

Крім того, якщо ви хочете анімації, то на елементі панелі itemscontrol ви можете встановити childrestransitions з чим-небудь з анімаційної бібліотеки, і вам добре йти.

Схоже, зв'язування може бути новим для вас. Можливо, ви захочете переглянути мій грунт на тему тут: http://blog.jerrynixon.com/2012/10/xaml-binding-basics-101.html