FluidMoveBehavior
顾名思义,这个行为的作为是为控件带来平滑移动的效果。具体来说,它可以被添加到一个 Panel
控件(比如 StackPanel
等)上,进而在它内部的子控件发生位置变化时,提供平滑的过渡效果。它有几个常用属性:
Duration
:指定动画的持续时间(默认 1 秒)AppliedTo
:动效的目标,可以是Children
(子控件)或Self
(自己,默认)
我们可以通过一个简单的例子观察它的效果。在下面的例子中,我们使用了用于移除自身的 RemoveElementAction
动作。
我们当然也可以将它用在诸如 ListBox
这样的控件上,从而实现添加或删除子项目时发生漂亮的移动效果(尤其是在遵循 MVVM 模式时)。但需要注意的是,这个行为默认只能被添加到 Panel
控件上,因此如果直接添加到 ListBox
上,它将不会起作用。要使其生效,我们需要将其添加到 ListBox.ItemsPanel
中。
注意:FluidMoveBehavior
需要在 ItemsPanelTemplate
中使用,而不是直接添加到 ListBox
上。
上面只是一个简单的例子。请注意,上面的方式将会破坏 ListBox
的虚拟化特性,因此在实际应用中,如果我们需要在 ListBox
中使用虚拟化,可以考虑使用 VirtualizingStackPanel
作为 ItemsPanelTemplate
。