为什么WPF动画不尊重高度或宽度值?

时间:2011-12-23 02:52:22

标签: wpf animation

为什么这个动画导致窗口首先在原始位置从左到右移动,然后跳到另一个位置,即使我在动画开始之前设置了width和height属性。它似乎在开始显示宽度时重置高度值,然后在进行第二次动画时将其更改回来。

  Sub ShowTitle(ByVal Text As String)
        tb_text.Visibility = Windows.Visibility.Hidden
        tb_text.Height = 5
        tb_text.Width = 0
        tb_text.Text = Text
        tb_text.Visibility = Windows.Visibility.Visible


        Dim SB As New Animation.Storyboard

        Dim FIW = New Animation.DoubleAnimation(0, 400, New Duration(TimeSpan.FromSeconds(2)))
        SB.Children.Add(FIW)
        Animation.Storyboard.SetTargetName(FIW, tb_text.Name)
        Animation.Storyboard.SetTargetProperty(FIW, New PropertyPath(WidthProperty))

        Dim FIH = New Animation.DoubleAnimation(5.0, 50.0, New Duration(TimeSpan.FromSeconds(2)))
        FIH.BeginTime = TimeSpan.FromSeconds(2)
        SB.Children.Add(FIH)
        Animation.Storyboard.SetTargetName(FIH, tb_text.Name)
        Animation.Storyboard.SetTargetProperty(FIH, New PropertyPath(HeightProperty))

        SB.Begin(Me)
    End Sub

1 个答案:

答案 0 :(得分:1)

不确定这是否与您的场景有关,但我花了4个小时跟踪宽度/高度(在我的主窗口的情况下)动画的错误。在我抓住任何事情的绝望尝试中,我最终绊倒了这篇文章。最后,对我来说,“修复”结果是将项目切换回使用.NET Framework 3.5。如果您有这种奢侈品,请尝试并查看行为是否发生变化。

虽然你和我都有动画和宽度/高度问题,但我发现MS connect上的另一个人报告宽度/高度不具有触发器的工作属性(仅限.NET framework 4.0)。我建立了一个非常小的测试项目来说明这个问题,并提交了我自己的错误报告,但是我并没有真正屏住呼吸,因为另一个人在20个月前发布了他的问题,他的问题从那时起就是“分类和解决方案”。

相关问题