WPF-如何在数组中操作标签?

WPF-如何在数组中操作标签?,wpf,vb.net,animation,label,Wpf,Vb.net,Animation,Label,我的计划是创建一个文本提要,当添加一个新的文本行时,所有当前的文本行都会向上移动,而新的文本行会附加到底部,以向上移动并淡入,而顶部最旧的文本行会淡出 我想我无法使用WinForms进行此操作,因为没有标签的不透明度设置。 所以我开始了一个使用WPF的项目 我有一个计时器,每当添加新文本时,它就会启动,并会设置淡入/移动的动画 如果下一个文本行只占一行,它们都会上移一行,如果占两行,它们都会上移2行,以此类推 下图假设最多显示3个标签: Label1 Label2 Label3 添加新行时,L

我的计划是创建一个文本提要,当添加一个新的文本行时,所有当前的文本行都会向上移动,而新的文本行会附加到底部,以向上移动并淡入,而顶部最旧的文本行会淡出

我想我无法使用WinForms进行此操作,因为没有标签的不透明度设置。 所以我开始了一个使用WPF的项目

我有一个计时器,每当添加新文本时,它就会启动,并会设置淡入/移动的动画

如果下一个文本行只占一行,它们都会上移一行,如果占两行,它们都会上移2行,以此类推

下图假设最多显示3个标签:

Label1
Label2
Label3
添加新行时,Label1将淡出,其余的将通过更改其边距来设置动画。顶部值:

Label2
Label3
Label4
我知道如何创建这样的标签:

labelTest = New Label
labelTest.Content = "Test Line"
labelTest.Margin = New Thickness(-4, 100, 0, 0)
grid.Children.Add(labelTest)
Dim labels() As Label = New Label() {label1, label2, label3} 'etc..
但是我会为每一行做这些,并且需要单独引用它们,我也会删除掉的标签,有没有处理它们的方法,或者是没有必要的

编辑: 我觉得很傻。我可以创建一个标签数组,但下面有一个新问题。 我删除了上面的计时器代码,因为我觉得我输入的内容太多,与我真正的问题无关,还更改了标题

所以我制作了一个如下的数组:

labelTest = New Label
labelTest.Content = "Test Line"
labelTest.Margin = New Thickness(-4, 100, 0, 0)
grid.Children.Add(labelTest)
Dim labels() As Label = New Label() {label1, label2, label3} 'etc..
我将上述标签代码更改为:

Dim mrg as Integer = 100
For Each lbl As Label In labels
    mrg -= 10
    lbl = New Label
    lbl.Content = "Text"
    lbl.Margin = New Thickness(-4, mrg, 0, 0)
    grid.Children.Add(lbl)
Next
这非常有效,但是我如何单独操纵它们呢?我试过:

labels(0).Content = "New Text"

但它似乎并没有更新文本。

您应该研究如何使用WPF的动画来实现这一点,这就是它们的用途。看看故事板等等。。我有一个例子,显示了一个股票行情。它在水平方向上滴答作响,但可能有一些用处。操纵单个标签的代码应该可以工作。我建议您改用它吗?