是否有可能在控件和#39;数据绑定变化?

时间:2014-07-10 14:18:33

标签: c# wpf animation infragistics

我们有一个UserControl,它主要包含一个绑定到项目列表的XamTileManager(实际控件不重要)。当绑定发生变化时,我们希望使用任意动画为旧数据和新数据之间的过渡设置动画。这在WPF中通常是否可行?

替代方案当然是拥有两个UserControl并为它们之间的变化设置动画,但我们希望尽可能避免这种情况。

1 个答案:

答案 0 :(得分:3)

您可以使用故事板在项目中放置触发器。当数据发生变化时,触发器将触发并启动故事板动画。我找到了这个例子,它用于数据绑定的文本块:

<TextBlock x:Name="tbMessage" Text="{Binding Path=StatusBarText, NotifyOnTargetUpdated=True}">
    <TextBlock.Triggers>
        <EventTrigger RoutedEvent="Binding.TargetUpdated">
            <BeginStoryboard>
                <Storyboard>
                    <DoubleAnimation Storyboard.TargetProperty="Opacity" Duration="0:0:0" To="1.0" />
                    <DoubleAnimation Storyboard.TargetProperty="Opacity" Duration="0:0:2" From="1.0" To="0.0" BeginTime="0:0:5" />
                </Storyboard>
            </BeginStoryboard>
        </EventTrigger>
    </TextBlock.Triggers>
</TextBlock>

source

如果这不是您想要的,您可以使用Binding.TargetUpdated事件编写自己的动画。