wpf - 绑定(bind)到 DoubleAnimation.To

标签 wpf storyboard

我希望将 DoubleAnimation.To 绑定(bind)到依赖属性,并在该属性更改时触发动画。我可以让基本动画正常工作,但无法弄清楚如何在属性更改时触发它。

该示例显示我尝试为 Rectangle 的 Canvas.Left 属性设置动画。请注意,我已将 DoubleAnimation.To 绑定(bind)到 Position。我希望动画在位置更改时运行并移动我的矩形。有人可以帮我找出正确的触发器吗?

<Viewbox>
<Canvas Height="200" Width="200">
    <Rectangle Name="MyRectangle" Canvas.Left="50" Canvas.Top="50" Width="100" Height="100" Fill="Blue">
        <Rectangle.Triggers>
            <EventTrigger RoutedEvent="Rectangle.Loaded">
                <BeginStoryboard>
                    <Storyboard Name="MyStoryboard">
                        <DoubleAnimation Storyboard.TargetName="MyRectangle" 
                                            Storyboard.TargetProperty="(Canvas.Left)"
                                            To="{Binding Position}" Duration="0:0:5" />
                    </Storyboard>
                </BeginStoryboard>
            </EventTrigger>
        </Rectangle.Triggers>
    </Rectangle>
</Canvas>

最佳答案

答案是使用 EventTrigger 并将其 RoutedEvent 属性设置为 Binding.TargetUpdated。另外,您必须将 NotifyOnTargetUpdated=True 添加到您的绑定(bind)中(在我的例子中为“位置”)。

        <Viewbox>
        <Canvas Height="200" Width="200">
            <Rectangle Name="MyRectangle" Canvas.Left="50" Canvas.Top="50" Width="100" Height="100" Fill="Blue">
                <Rectangle.Triggers>
                    <EventTrigger RoutedEvent="Binding.TargetUpdated">
                        <BeginStoryboard>
                            <Storyboard Name="MyStoryboard">
                                <DoubleAnimation Storyboard.TargetName="MyRectangle" 
                                                    Storyboard.TargetProperty="(Canvas.Left)"
                                                    To="{Binding Position, NotifyOnTargetUpdated=True}" Duration="0:0:5" />
                            </Storyboard>
                        </BeginStoryboard>
                    </EventTrigger>
                </Rectangle.Triggers>
            </Rectangle>
        </Canvas>
    </Viewbox>

关于wpf - 绑定(bind)到 DoubleAnimation.To,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30361056/

相关文章:

wpf - 使用绑定(bind)根据集合中的属性自动生成 WPF 按钮

ios - 从模态视图 Controller 返回到 RootViewController

macos - Xcode 9 Storyboard 窗口位置自动保存

c# - WPF 中的数据网格绑定(bind)

sql - 如何从 SQL 查询构建对象层次结构? (对于 WPF TreeView )

c# - 更改 Windows Phone 8.1 应用程序的默认启动页面

ios - 为 iPhone X 创建特定的 Storyboard

wpf - 在 WPF 中实现向导进度控制

objective-c - 如何将新的类文件关联为特定场景的 View Controller ?

ios - 水平 ScrollView 滚动但仅部分滚动并弹回原始位置