Установка раскадровки TargetName в коде - PullRequest
0 голосов
/ 09 ноября 2010

Silverlight 4, но я не уверен, относится ли это также к WPF.

Это некоторый код, который я должен циклически проходить по элементам управления и анимировать их. Первый работает отлично, но во второй раз я получаю

System.InvalidOperationException: 2218 Произошла ошибка. ... в MS.Internal.XcpImports.SetValue (...

Не похоже, чтобы имя цели устанавливалось во второй раз. Я также пробовал эту строку как:

sbShowPopup.SetValue(Storyboard.TargetNameProperty, toPopup.Name);

Код (это немного уродливо - просто пытаюсь сделать POC прямо сейчас):

        Messenger.Default.Register<Item>(this, "O", I => {
            if (AvailablePopups.Peek() == null) {
                MessageBox.Show("Nothing available");
                return;
            }

            Control toPopup = AvailablePopups.Pop();
            toPopup.DataContext = I;

            try {
                Storyboard.SetTargetName(sbShowPopup, toPopup.Name);
            } catch (Exception E) {
                MessageBox.Show(E.ToString());
            }

            this.sbShowPopup.Begin();
        });

1 Ответ

1 голос
/ 10 ноября 2010

Если здесь кто-то оступится, вы должны остановить анимацию, прежде чем устанавливать цель на что-то другое:

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