【发布时间】:2009-10-14 23:54:15
【问题描述】:
我有一个 TextBlock 绑定到我的视图模型上的一个属性。我有一个 StoryBoard,使用 Opacity 属性淡入淡出文本。在用户执行操作(成功、错误等)后,我正在使用此文本向用户提供反馈。当属性从我的视图模型更改时,如何启动 StoryBoard?有没有更好的方法来实现这种效果?
【问题讨论】:
标签: silverlight silverlight-3.0 silverlight-2.0
我有一个 TextBlock 绑定到我的视图模型上的一个属性。我有一个 StoryBoard,使用 Opacity 属性淡入淡出文本。在用户执行操作(成功、错误等)后,我正在使用此文本向用户提供反馈。当属性从我的视图模型更改时,如何启动 StoryBoard?有没有更好的方法来实现这种效果?
【问题讨论】:
标签: silverlight silverlight-3.0 silverlight-2.0
抱歉,我不想告诉你——但你想错了。
不要考虑情节提要、不透明度和可见性属性。 总是想着“视觉状态”。
您刚刚描述的(在 TextBlock 中淡入以响应某些业务逻辑更改)是使用 VisualStateManager 状态的完美案例。
基本上,您最终将拥有一个“是”状态组,该状态组将在满足条件时具有一种状态(已达到某种状态),而在未满足条件时具有另一种状态。
我强烈建议您花 30 分钟观看这些出色的 Blend VSM 教程视频。 http://expression.microsoft.com/en-ca/cc643423.aspx 特别是“Add States to a Control”下的 7 分钟视频。
Erwin van dar valk 刚刚发表了一篇出色的文章,演示了如何根据您的情况从 MVVM 更改 VSM 状态。 http://blogs.msdn.com/erwinvandervalk/archive/2009/10/12/how-to-work-with-animations-in-silverlight-in-the-mvvm-pattern.aspx
【讨论】: