WPF中的动画过渡

时间:2009-06-06 23:03:20

标签: wpf animation

我无法弄清楚我在这里缺少什么。

问题在于:
考虑具有触发器的(控制|数据)模板,该触发器切换一些内部UI元素的可见性。例如。当IsReadOnly == true时显示TextBlock并在IsReadOnly == false时显示TextBox。

如果你在没有动画的情况下这样做,一切都很完美 - 一个或两个安装人员就可以完成这项工作。但是,如果你想要一部花哨的动画呢?然后,您将指定在EnterActions和ExitActions中启动哪些动画。

但问题是动画究竟应该做什么?修改宽度/高度似乎非常难看,因为WPF中的固定大小几乎总是错误的方式,而且它绝对不灵活。

到目前为止,我提出的最好的方法是在一定程度上修改MaxHeight / MaxWidth,这样可以提供更多的灵活性,但仍然看起来很残酷。

如何告诉WPF将元素的宽度/高度从0设置为“尽可能多”?

UPD:目前我为Opacity和RenderTransform设置了动画效果。只是有时候我希望看到动画在没有变形的情况下滑动的动画。这不是一个关键问题,但对我来说非常有趣。

4 个答案:

答案 0 :(得分:3)

对于大多数动画,您应该使用渲染变换或不透明度或两者。我几乎从不使用任何其他东西。

要使文字“成长”,请为渲染变换的缩放设置动画。不要忘记中心点。

使用Expression Blend快速达到预期效果。

答案 1 :(得分:2)

结帐Transitionals Framework。这可能就是你所需要的。

答案 2 :(得分:1)

考虑使用Blend SDK的过渡效果。可以找到构建内部使用像素着色器的自定义TransitionControl的一个很好的解释here

答案 3 :(得分:0)

我认为最好的选择是为不透明度设置动画:在TextBox淡入时使TextBlock淡出,反之亦然。