我有边界元素,其 Margin 属性绑定到某个类的 StartDate (DateTime) 属性。如果属性更改边距也更改(在转换器的帮助下)。
我想尽可能顺利地进行更改。例如,在 UI 端,数据类中的一小时等于屏幕上的 15 像素,当我更改 StartDate +/- 一小时时,我可以看到元素边距向右/向左跳跃 +/- 15 像素......那我怎么能动画这个?
先感谢您!
顺便说一句 - 这是我在这里的第一个问题:)
我有边界元素,其 Margin 属性绑定到某个类的 StartDate (DateTime) 属性。如果属性更改边距也更改(在转换器的帮助下)。
我想尽可能顺利地进行更改。例如,在 UI 端,数据类中的一小时等于屏幕上的 15 像素,当我更改 StartDate +/- 一小时时,我可以看到元素边距向右/向左跳跃 +/- 15 像素......那我怎么能动画这个?
先感谢您!
顺便说一句 - 这是我在这里的第一个问题:)
不幸的是,您无法通过动画原生地操纵边距。边距实际上是一个厚度对象,简单的属性动画师几乎不可能自己找出对象。
然而,就像现在的任何事情一样,有很多方法可以覆盖它:
移动对象的位置而不是边距: Silverlight 中的动画边距变化
在 WPF 中创建一个类似于 ThicknessAnimation 类的新类并在代码中调用它:http: //blogs.msdn.com/blemmon/archive/2009/03/18/animating-margins-in-silverlight.aspx
...或者我更喜欢的方式:找到其他东西来制作动画。你可以操纵一个不同的对象来移动你的其他对象。您可以非常轻松地为不可见/清晰对象的宽度和高度设置动画。如果该项目是堆栈面板中的第一个项目,则它之后的所有项目都将随着其大小值的更改而移动。这可能会变得很挑剔,但它真的很容易做到。
祝你好运!