我有以下代码:
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 :(得分:0)
不,如果在运行时需要一组在设计时未知数量的重复控件,正确的方法是使用itemscontrol或从gridconit继承的一些控件,并将itemscontrol绑定到值observablecollection的属性。然后你操纵observablecollection的成员,itemscontrol将根据itemtemplate属性为你创建相应的控件。
<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的itemspanel上,您可以使用动画库中的某些内容设置childrentransitions,您就可以了。
听起来像绑定对你来说可能是新的。您可以在此处查看我对该主题的入门读物:http://blog.jerrynixon.com/2012/10/xaml-binding-basics-101.html