ColorAnimation поможет? - PullRequest
       1

ColorAnimation поможет?

0 голосов
/ 11 июля 2011

Я пытаюсь сделать колоранимацию в WPF, чтобы новый элемент пользовательского интерфейса отображался с красной рамкой, которая со временем становится белой. Вот код, который у меня есть:

        SolidColorBrush toFade = new SolidColorBrush(Colors.Red);

    private void showElement(SuperTB.SuperTextB toShow)
    {
        toShow.Visibility = Visibility.Visible;
        toShow.BorderBrush = toFade;

        ColorAnimation fadeToWhite = new ColorAnimation();
        fadeToWhite.To = Colors.White;
        fadeToWhite.Duration = TimeSpan.FromSeconds(1);
        Storyboard.SetTargetName(fadeToWhite, "toFade");
        Storyboard.SetTargetProperty(fadeToWhite, new PropertyPath(SolidColorBrush.ColorProperty));
        Storyboard fade = new Storyboard();
        fade.Children.Add(fadeToWhite);
        fade.Begin(this);
    }

и в моем конструкторе MainWindow у меня есть

this.RegisterName("toFade", toFade);

Когда вызывается метод, появляется нужный элемент, но цветовая анимация отсутствует. Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 12 июля 2011

Вы слишком усложняете вещи, я бы сказал, у вас есть только одна анимация, поэтому вам не нужна раскадровка, просто наберите BeginAnimation на Brush и все. например,

Action<TextBox> animMethod = (TextBox x) =>
    {
        var brush = new SolidColorBrush(Colors.Red);
        x.Visibility = Visibility.Visible;
        x.BorderBrush = brush;
        brush.BeginAnimation(SolidColorBrush.ColorProperty, new ColorAnimation(Colors.White, TimeSpan.FromSeconds(1)));
    };
animMethod(tbtest);

Кроме того, если вам нужно использовать раскадровку в коде, сделайте , а не , используйте свойство TargetName, а просто свойство Target. иметь правильную ссылку, а не только имя.

0 голосов
/ 12 июля 2011

Скажу сразу, я только один раз делал анимацию в коде, и это было ужасно.Затем я снял анимацию в XAML в VS2008, и это было ужасно.Затем я получил копию Expression Blend и анимированный в конструкторе ...

Намного проще, и это выглядело лучше, так как я мог более точно контролироватьанимация.Сделайте себе одолжение и получите Blend, оно того стоит.Требуется немного привыкнуть, но в конечном итоге это сэкономит много времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...