如何在Windows应用商店应用中为按钮位置(边距)设置动画?

时间:2013-06-13 15:26:29

标签: c# animation windows-runtime windows-store-apps

我正在创建一个Windows 8应用程序,我需要设置按钮位置的动画。按钮是动态创建的,因此XAML不是一个选项。按钮的位置根据Margin属性计算,该属性为Thickness类型。我发现ThicknessAnimation确实存在于WPF中,但不存在于Windows应用商店应用中。如何为动态创建的按钮的位置设置动画?由于很多原因,我也不能使用RenderTransform,因为我有太多的事件和属性,具体取决于对象的实际位置(Margin)。我发现了这个问题Windows 8 store app c# animating margin但不幸的是它被关闭了。我一般都知道动画(创建故事板,添加动画,添加目标对象和属性,开始故事板)但我不知道如何将它应用于厚度属性。

谢谢,

可以。

1 个答案:

答案 0 :(得分:0)

你可以处理CompositionTarget.Rendering事件,虽然你必须自己管理所有定位数学,这在许多物体的情况下可能很难 - 这只是一个例子,看起来有点奇怪但有效:

public MainPage()
{
    this.InitializeComponent();
    CompositionTarget.Rendering += OnCompositionTargetRendering;
}

private void OnCompositionTargetRendering(object sender, object e)
{
    RenderingEventArgs args = e as RenderingEventArgs;
    double t = (args.RenderingTime.TotalMilliseconds) % 20;
    button1.Margin = new Thickness(t);
}