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

时间:2014-09-06 22:58:25

标签: wpf vb.net animation label

我的计划是创建一个文本源,当添加新的文本行时,所有当前的文本行都会向上移动,新的文本行会附加到底部(向上移动动画并淡入淡出),而最旧的文本行顶部的线渐弱。

我认为我无法使用WinForms,因为标签没有不透明度设置。 所以我用WPF开始了一个项目。

我有一个计时器,只要添加新文本就会启动,并为衰落/移动设置动画。

如果下一个文本行只占用一行,它们都向上移动一行,如果它占用2行,它们都会向上移动2等。

这是一个假设最多显示3个标签的图表:

Label1
Label2
Label3

当添加新行时,Label1会逐渐消失,其余的行动起来(通过更改margin.top值):

Label2
Label3
Label4

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

labelTest = New Label
labelTest.Content = "Test Line"
labelTest.Margin = New Thickness(-4, 100, 0, 0)
grid.Children.Add(labelTest)

但是我会为每一个新行做这个,并且需要单独引用它们,我也会删除掉淡的标签,是否有处理它们的方法或者这是不必要的?< / p>

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

所以我做了一个像这样的数组:

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"

但它似乎没有更新文本。

0 个答案:

没有答案