Ответ 1
Вам нужно добавить следующее:
doubleAnimation.EnableDependentAnimation = true;
Это похоже на проблему.
Следующий код отлично работает в 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), которое работает.
В чем проблема с "Ширина"?
Вам нужно добавить следующее:
doubleAnimation.EnableDependentAnimation = true;
Это похоже на проблему.
Я не уверен, но попытаюсь использовать:
Storyboard.SetTargetProperty(doubleAnimation, Button.WidthProperty);
Вместо
Storyboard.SetTargetProperty(doubleAnimation, "Width");