【问题标题】:How to animate visibility of a StackPanel in Silverlight to expand and collapse?如何在 Silverlight 中为 StackPanel 的可见性设置动画以展开和折叠?
【发布时间】:2011-03-17 02:36:12
【问题描述】:

就我而言,我希望展开/折叠分别从左到右和从右到左发生。

动画应该在可见性改变时发生。

谢谢。

【问题讨论】:

标签: wpf silverlight xaml animation silverlight-4.0


【解决方案1】:

您可以创建两个动画情节提要(一个用于展开,一个用于折叠),为堆栈面板的宽度设置动画,然后在 StackPanel_VisibilityChanged 上运行适当的动画。

【讨论】:

  • 你有一个例子,可以为 StackPanel 的当前宽度设置动画吗?我看到的所有例子都是基于固定宽度的。
  • 我记得不久前做过这样的事情,尽管我最终摆脱了它并以不同的方式为我的窗口设置动画,所以我没有代码(切换到从 0 到 ScaleAnimation 100%)。我想我将情节提要的 DoubleAnimation“From”绑定到 StackPanel.RenderWidth 并将“To”设置为 0。动画存在于资源中,而不是样式中,它是通过调用 Storyboard animation = (Storyboard)this.FindResource( “故事板名称”);动画.开始();从后面的代码。
  • 如果这不起作用,请尝试为 RenderTransform.(ScaleTransform.ScaleX) 设置动画。这就是我目前正在使用的。我认为,如果您不设置 CenterPoint,它会在原地设置动画,因此效果与扩展相同。
【解决方案2】:

我建议在 Width 属性而不是 ScaleX 上制作动画。 否则,整个控件 (StackPanel) 将看起来像动画一样被压缩/拉伸。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-31
    • 2017-06-07
    • 1970-01-01
    • 1970-01-01
    • 2011-09-12
    • 1970-01-01
    • 2020-01-13
    • 1970-01-01
    相关资源
    最近更新 更多