自动平滑调整大小过渡 - 故事板的问题

时间:2011-05-26 13:55:23

标签: c# silverlight storyboard

我已经尝试了一段时间来创建一个类/系列的类,在检测到相关对象中的调整大小时,尝试暂停对象的大小调整并为其创建平滑的调整大小动画。 但是,在动画开始播放之前,我一直遇到屏幕上对象“闪烁”一秒的问题。

长话短说,在经过一些严肃的调试和自我怀疑之后,我认为在下一个时钟滴答之前调用Storyboard.Begin()不会影响目标值。我认为这与Storyboard.Seek()有关,直到下一个时钟滴答时才会发生。 (See the MSDN Reference)。因此,在动画开始之前,对象会在单帧中采用新的高度,然后将其拉回到起始高度。

我花了很长时间试图让它起作用,因为它并不像看起来那么简单。我无法将FrameworkElement.Height设置为e.PreviousSize.Height事件处理程序中的FrameworkElement.SizeChanged,因为这会影响对象的“true”高度。作为为什么这不起作用的一个例子,如果在播放动画时某些东西改变了对象的“真实”高度,那么将FrameworkElement.Height重新设置为动画开始时收集的目标高度将其设置为不正确的过时值。

我尝试了更多的东西,我确信它们会在答案到来时出现,但是你们的任何想法都会非常感激。

1 个答案:

答案 0 :(得分:0)

通过创建一个处理子对象大小调整的布局容器,您可能会有更好的运气,例如Robby Ingebretsen's Animated Panel