4

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

4

1 回答 1

1

听起来您在动画之前设置了 UserControl 的 DataContext 。大概您正在进行绑定,即创建视觉对象并将它们添加到视觉树中,同时动画应该开始。这需要动画正在争取的处理。避免这种情况的方法是将控件实例化(设置了 DataContext),但将其隐藏,因此不需要在动画时执行可视对象创建。(通过我的同事蒂姆·李)

于 2009-06-03T19:38:00.637 回答