以下代码在Silverlight中正常工作:
private void Button_Click_1(object sender, RoutedEventArgs e)
{
Storyboard storyboard = new Storyboard();
DoubleAnimation doubleAnimation = new DoubleAnimation();
doubleAnimation.From = 50;
doubleAnimation.To = 100;
doubleAnimation.RepeatBehavior = RepeatBehavior.Forever;
doubleAnimation.AutoReverse = true;
doubleAnimation.Duration = new Duration(TimeSpan.FromMilliseconds(200));
storyboard.Children.Add(doubleAnimation);
Storyboard.SetTarget(doubleAnimation, button1);
Storyboard.SetTargetProperty(doubleAnimation, new PropertyPath("Width"));
storyboard.Begin();
}
在WinRT / Metro中,需要进行一次小改动才能编译:
Storyboard.SetTargetProperty(doubleAnimation, "Width");
但是当你运行它时,没有任何反应。
如果您将属性从“宽度”更改为“不透明度”(也可以更改From = 0和To = 1)。
“宽度”有什么问题?
答案 0 :(得分:21)
您需要添加以下内容:
doubleAnimation.EnableDependentAnimation = true;
这似乎解决了这个问题。
答案 1 :(得分:1)
我不确定但是尝试使用:
Storyboard.SetTargetProperty(doubleAnimation, Button.WidthProperty);
而不是
Storyboard.SetTargetProperty(doubleAnimation, "Width");