【问题标题】:Animated transitions in WPFWPF 中的动画过渡
【发布时间】:2010-10-31 22:31:14
【问题描述】:

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

问题来了:
考虑一个带有触发器的 (Control|Data)Template,它可以切换一些内部 UI 元素的可见性。例如。 IsReadOnly==true 时显示 TextBlock,IsReadOnly==false 时显示 TextBox。

如果您在没有动画的情况下执行此操作,一切都是完美的——一两个二传手就可以完成这项工作。但是,如果您想要精美的动画怎么办?然后,您将在 EnterActions 和 ExitActions 中指定要启动的动画。

但问题是动画到底应该做什么?修改宽度/高度看起来真的很难看,因为 WPF 中的固定大小几乎总是错误的方法,而且它绝对不灵活。

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

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

UPD:目前我正在制作不透明度和渲染转换的动画,并且它可以工作。只是有时我希望看到元素在没有变形的情况下滑动的动画。这不是一个关键问题,但对我来说是一个非常有趣的问题。

【问题讨论】:

    标签: wpf animation


    【解决方案1】:

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

    要使您的文本“增长”,请为渲染变换的比例设置动画。不要忘记中心点。

    使用 Expression Blend 快速达到所需的效果。

    【讨论】:

    • 是的,我也使用 RenderTransform 动画,但有时我不希望看到控件的动画被“压缩”和“解压缩”...
    【解决方案2】:

    查看Transitionals Framework。这可能是您需要的。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-02-26
          • 2016-11-01
          • 1970-01-01
          • 2016-03-16
          • 2018-04-20
          • 1970-01-01
          相关资源
          最近更新 更多