0

我很难找出正确的方法来为我的 UI 设置动画。我知道我该如何做这两件事,但是我提出的所有解决方案都意味着很多(丑陋的)代码,并且必须有更好的方法。

什么是动画某些值的正确或最“干净”的方式,即绑定到属性。我的模型上有 Color 属性,它定义了元素的背景颜色。当颜色发生变化时,我希望它是平滑的,而不是突然的颜色变化。这可以在 xaml 中完成,这样模型就不必意识到这一点吗?

交叉渐变怎么样?目前,我通过将两个控件放在一起(在网格中)来实现这一点。当我开始更改时,我 1. 将 element1 的可见性设置为可见 2. 开始动画,将 element1 的不透明度从 0 更改为 1 3. 开始动画,将 element2 的不透明度从 1 更改为 0 4. 动画完成后,将 element2 的可见性设置为折叠(这样它就不会捕获所有鼠标事件)

哦,(MVVM)应用程序是用 C# 和 XAML 编写的,使用 WinRT-api

4

1 回答 1

0

我意识到这已经很晚了,但是对于那些将来会看到这一点的人:

您应该查看 VisualStates 和 VisualTransitions。它们允许您确定要显示的状态(例如 Opacity 为 0 或 1),以及从一种状态转换到另一种状态时调用的动画。这非常简单,几乎可以完全在 XAML 中完成(调用除外GoToState)。不过,您可能想查看一些扩展,因为它们提供了诸如行为之类的东西,允许您触发诸如数据更改之类的状态。

这里有基本 VisualState/VisualTransision 的指南。

于 2014-02-06T18:45:01.307 回答