Анимация цвета LinearGradientBrush в коде позади - PullRequest
2 голосов
/ 16 февраля 2011

Я немного пытаюсь анимировать LinearGradientBrush (lgb) в приложении Silverlight.У меня есть следующий код в конструкторе для моей страницы:

    for (int stops = 0; stops < numStops; stops++)
    {
        ColorAnimation animation = new ColorAnimation();
        animation.To =
            Color.FromArgb(255, (byte)rnd.Next(256), (byte)rnd.Next(256), (byte)rnd.Next(256));
        animation.Duration = TimeSpan.FromSeconds(1);
        Storyboard.SetTarget(animation, lgb);
        Storyboard.SetTargetProperty(animation,
            new PropertyPath("GradientStops[" + stops.ToString() + "].Color"));
        Storyboard story = new Storyboard();
        story.Children.Add(animation);
        story.Begin();
    }

Он компилируется и работает, но не меняет цвет.Я просто не вижу, что я делаю неправильно.

Спасибо,WTS

1 Ответ

1 голос
/ 16 февраля 2011

Ваш код отлично работает в Silverlight 4 и в Windows Phone 7 (WP7 в значительной степени Silverlight 3).Я предполагаю, что если я создам изолированное приложение для SL3, оно также будет работать там.

Единственное, чего не хватает в вашем коде, так это того, как вообще получается lgb?Вы уверены, что это тот же самый экземпляр, который фактически используется в вашем пользовательском интерфейсе.

Например, я просто добавил кисть в свою сетку LayoutRoot, как это:Я назначаю LGB с: -

LinearGradientBrush lgb = (LinearGradientBrush)LayoutRoot.Background;
...