Код, который вы предоставили, на самом деле работает. Но в вашем случае у вас есть строковый массив с именами кистей. В моем решении трехмерные модели загружаются из внешних библиотек ресурсов, и я не могу предположить, что это имя для каждой кисти. В любом случае, сейчас я использую ваше решение и генерирую уникальные имена для кистей во время выполнения. Тем временем я, вероятно, попытаюсь найти хороший способ создания имен для всех компонентов Visual3D.

ли кто-нибудь помочь мне, пытаясь выяснить, почему это не работает.

Переменная brushes содержит предварительно заполненный список кистей. Если я попытаюсь применитьBeginAnimation Непосредственно во время итерации работает нормально. Но имеет большие издержки, начиная каждую анимацию отдельно ...

Поэтому я пытался поместить все анимации в одну раскадровку и запустить их одновременно ...

var storyBoard = new Storyboard();           
var duration = new Duration(TimeSpan.FromMilliseconds(time));
foreach (Brush brush in brushes) 
{
    var animation = new DoubleAnimation(toValue, duration);

    storyBoard.Children.Add(animation);

    Storyboard.SetTargetProperty(animation, new PropertyPath(Brush.OpacityProperty));
    Storyboard.SetTarget(animation, brush);
}

storyBoard.Begin();

Этот код просто ничего не делает (что я вижу ...).

Спасибо!!

Редактировать: Все еще не уверен в том, что проблема с методом SetTarget, либо ошибка, либо я просто не использую, как это должно быть. В любом случае я решил проблему, генерируя уникальные имена для своих кистей во время выполнения и используя метод SetTargetName.

Еще раз спасибо за все предложения.

Ответы на вопрос(1)

Ваш ответ на вопрос