使用XAML / C#从A点移动按钮到B点

时间:2013-11-26 17:56:40

标签: c# wpf xaml

一般来说,移动的方式是什么(动画,转换,无论什么单词;无论如何)buttonpoint A(通过用户点击作为来源)到point B(由用户)在C#/XAML中点击作为目标? (想象一下像Chess这样的棋盘游戏,以便将作品从A移动到B)。

我正在开展一个具有以下规范的项目:

我的方法是MVVM:所以我创建了一个custom button(派生自ButtonBase)来模拟由delegate command指定的作品(移动)对于网格中的每个单元格以及事件的dependency propertiesINotification。不要提到我在这种情况下从未使用CanvasPanel。我也使用StoryBoarddependency object内调用来触发动画。

说过我正在寻找一种方法,可以通过用户点击将buttonA移到B。请记住,我知道移动对象的Transform但是如何指定source(通过第一次点击)然后指定To来定位(通过下一次点击)以及如何管理来回事件?

1 个答案:

答案 0 :(得分:0)

对于保持MVVM概念清晰的任何类型的动画,您应使用StoryboardsAnimations。如果你真的想在太空中移动按钮 - 请使用Canvas。在Canvas范围内,您可以制作精彩的动画 简单的例子:

<Canvas>
    <Button Canvas.Left="1" Width="100" Height="100" Content="Flying button..">
        <Button.Triggers>
            <EventTrigger RoutedEvent="Button.Click">
                <BeginStoryboard>
                    <Storyboard>
                        <DoubleAnimation                                
                        Storyboard.TargetProperty="(Canvas.Left)"
                        From="1.0" To="100.0" Duration="0:0:5"/>
                    </Storyboard>
                </BeginStoryboard>
            </EventTrigger>
        </Button.Triggers>
    </Button>
</Canvas>

结果:

enter image description here