Silverlight 4:如何在DataBinding中更改TextBlock的文本时触发动画?

Mik*_*nen 3 data-binding silverlight silverlight-4.0

我有一个用户控件,datacontext设置为视图模型.用户控件包含一些绑定到视图模型属性的文本块和文本框.当视图模型的属性值发生变化时,我想做一个小动画,但我似乎无法在Silverlight中找到一种方法.

在WPF中,我们可以使用NotifyOnTargetUpdated和Binding.TargetUpdated等属性来捕获更改,但Silverlight似乎缺少这些属性.在我的情况下,动画不是基于属性的值,这意味着当某个属性的值是例如5时我不想启动动画.相反,每次更改属性的值时都应该启动动画(突出显示已更改的用户的内容).

以下是如何在WPF中执行此操作的答案:绑定更新时动画WPF文本,如何?

但是我如何才能对Silverlight 4做同样的事情呢?

ale*_*kop 5

你应该能够使用Expression Blend 4中包含的新触发器来完成这项工作.例如,有一大堆ne行为/触发器等可以让你对ViewModel中的变化做出反应.

从Expression Blend功能页面:

新行为表达式混合包括新的TranslateZoomRotateBehavior多点触控行为,以及可用于通过触摸在项目之间滚动的PanningItems控件.Expression Blend还有一个新的触发器,可响应帧更改或暂停或完成SketchFlow动画,称为SketchFlowAnimationTrigger.Expression Blend具有新的行为集,用于在列表框之间拖动项目,修改菜单导航以及保留屏幕状态,例如SetDataStoreValueAction和DataStoreChangedTrigger.

对FluidMoveBehavior进行了令人兴奋的增强:如果将其应用于同一数据项的不同视图,当项目从一个视图移动到另一个视图时(例如,从列表视图移动到详细信息视图),它会流畅地动画化两种观点之间的过渡.

与使用Model-View-ViewModel模式的应用程序一起使用的新行为包括:CallMethodAction,InvokeCommandAction和DataStateBehavior.您可以使用这些行为来调用ViewModel上的行为,或者响应对其属性的更改.

条件行为和数据存储您现在可以在原型和生产应用程序中构建条件逻辑,而无需编写代码.实际上,任何动作都可以与为执行动作必须满足的一组条件相关联.新的数据存储功能使应用程序变量(例如当前用户的角色)可以被读取和写入,以便有效地,应用程序的不同部分可以通过此共享状态进行通信.

作为此功能的一部分引入的新行为组件包括每个操作的"属性"面板中显示的条件编辑器,允许您操作数据存储中的值的SetDataStoreValueAction操作,以及在数据内部选定的属性时触发的DataStoreChangedTrigger触发器商店改变了.

http://www.microsoft.com/expression/products/Blend_Features.aspx

干杯,亚历克斯