我有一个 Grid 有 2 行,其中第二行有 Visibility.Collapsed 默认情况下。我希望它在网格上的 MouseEnter 上更改为 Visibility.Visible,然后在 MouseLeave 上更改。这很简单并且完成了。
但是,我希望 Visible 和 Collapsed 之间的过渡不是即时的而是平滑的。
我相信我可以用 VisualStateManager 以某种方式做到这一点,但我不确定如何,所以任何指导都值得赞赏。
我有一个 Grid 有 2 行,其中第二行有 Visibility.Collapsed 默认情况下。我希望它在网格上的 MouseEnter 上更改为 Visibility.Visible,然后在 MouseLeave 上更改。这很简单并且完成了。
但是,我希望 Visible 和 Collapsed 之间的过渡不是即时的而是平滑的。
我相信我可以用 VisualStateManager 以某种方式做到这一点,但我不确定如何,所以任何指导都值得赞赏。
您正在寻找动画。了解这些工作原理的最简单方法是在 Microsoft 的 Expression Blend 中进行设置。查看生成的代码,看看它们做了什么(它可能有点长,所以只包括测试 stup 中所需的少量元素)。
最有可能的是,您最终会使用除 Visibility 属性之外的其他东西,因为动画需要数字,而 Visibility 属性只有离散值。动画不透明度和高度属性听起来是正确的。
另一种方法是使用过渡控制 http://www.silverlight.net/archives/videos/silverlight-toolkit-animatedtransition-control 这可能是无需在混合中构建任何自定义的最快方法。