一般来说,移动的方式是什么(动画,转换,无论什么单词;无论如何)button
从point A
(通过用户点击作为来源)到point B
(由用户)在C#/XAML
中点击作为目标? (想象一下像Chess这样的棋盘游戏,以便将作品从A
移动到B
)。
我正在开展一个具有以下规范的项目:
我的方法是MVVM
:所以我创建了一个custom button
(派生自ButtonBase
)来模拟由delegate command
指定的作品(移动)对于网格中的每个单元格以及事件的dependency properties
和INotification
。不要提到我在这种情况下从未使用Canvas
和Panel
。我也使用StoryBoard
从dependency object
内调用来触发动画。
说过我正在寻找一种方法,可以通过用户点击将button
从A
移到B
。请记住,我知道移动对象的Transform
但是如何指定source
(通过第一次点击)然后指定To
来定位(通过下一次点击)以及如何管理来回事件?
答案 0 :(得分:0)
对于保持MVVM
概念清晰的任何类型的动画,您应使用Storyboards
和Animations
。如果你真的想在太空中移动按钮 - 请使用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>
结果: