1

我有以下代码:

        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);

        }

添加了文本块,但只是一秒钟......当动画停止时,控件也消失了......谁能告诉我为什么?

4

1 回答 1

0

不,如果您在运行时需要一组在设计时数量未知的重复控件,正确的方法是使用itemscontrol 或从itemscontrol 继承的某些控件(如gridview)并将该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 的项目面板上,您可以使用动画库中的某些内容设置 childrentransitions,您就可以开始了。

听起来绑定对您来说可能是新的。您可能想在这里查看我关于该主题的入门:http: //blog.jerrynixon.com/2012/10/xaml-binding-basics-101.html

于 2013-03-04T22:31:20.067 回答