代码之家  ›  专栏  ›  技术社区  ›  Rich

WPF动画首次运行

  •  3
  • Rich  · 技术社区  · 16 年前

    我有一个简单的WPF应用程序,其中包含一个用户控件,该控件由主窗口上的一对故事板进行进出动画。我正在设置用户控件的不透明度scaletransform.scalex和scaletransform.scaley的动画,以使其在视图中或视图外弹出。它看起来很酷,除了第一次运行。动画设置为3/10秒,尽管在测试期间我增加了这个值。我试着在一秒钟内设置一个默认值,看看是否有问题,我正在设置的属性的值没有如预期的那样默认。什么都没做。我甚至在加载的窗口上显式地调用“隐藏”动画,看看这是否有助于我设置默认值,但这也不起作用。当我第一次启动动画时,运行库是否正在进行一些初始化?在显示UI之前,有没有一种方法可以显式调用这种初始化?症状是直到进入第一个动画大约2/10秒后,控件才可见。有时它会变长,控件在完全动画后显示(不透明度和大小是最终显示时的最终值)。

    1 回复  |  直到 16 年前
        1
  •  1
  •   Jon Galloway    16 年前

    听起来您正在动画之前设置UserControl的DataContext。假设您正在进行绑定,即创建可视对象并在动画应该开始的同时将其添加到可视树中。这需要处理动画所需要的。避免这种情况的方法是将控件实例化(使用DataContext集),但隐藏,因此不需要在动画时执行可视化对象创建。(通过我的同事Tim Lee)