Я совершенно новичок в этом форуме и все еще новичок в WPF.
Я работаю над проектом, который требует анимации штрихов на чернильном холсте.Одна из необходимых анимаций - «исчезновение».Я хочу, чтобы выбранные обводки постепенно исчезали при нажатии кнопки, но появлялись в конце анимации.
Так как у обводки нет свойства непрозрачности, я попытался использовать класс ColorAnimation вместе с раскадровками.Мне не удалось заставить этот код работать, так как я не могу нацеливать штрихи ни на себя, ни на их имена, поскольку у них их нет.
Сейчас я думаю о внедрении этой системы путем постепенного измененияцвет обводки до цвета фона, и в конце сбрасываем его обратно к исходному значению.Это дорогостоящий цикл, но у меня нет других идей.
Буду признателен, если есть какие-либо другие решения, которыми вы могли бы поделиться со мной.
Заранее спасибо.
Редактировать: я не ответил на комментарии, так как имел дело с другими частями того же проекта.
Я пытался использовать альфа-значения, которые хранятся в DrawingAttributes, но я не могу изменить значение, так как ононе является переменнойТо же самое касается значений RGB.Я понятия не имею, как заставить штрихи исчезать в цикле.Я уже реализовал большую часть проекта, поэтому мне просто нужно что-то, чтобы они постепенно исчезли.Ниже вы можете найти пример, где я изменяю сам штрих, чтобы оживить его.
private int dropOffset = 1;
private void DropAnimation()
{
m = new Matrix();
m.Translate(0, dropOffset);
animStrokes.Transform(m, false);
YChange += dropOffset;
dropOffset += 2;
}
А в другом классе у меня есть
public void AnimateStrokes(Dispatcher canvasDispatch)
{
Stopwatch initial = Stopwatch.StartNew();
while (initial.ElapsedMilliseconds < 2000)
{
foreach (Animation ai in AnimationList)
{
ai.animateSelected();
}
canvasDispatch.Invoke(new Action(() => { }), DispatcherPriority.Render);
Thread.Sleep(50);
}
foreach (Animation a in AnimationList)
{
a.undoAnimation();
}
canvasDispatch.Invoke(new Action(() => { }), DispatcherPriority.Render);
}
Я знаю, что передавать диспетчеру нехорошовот так, но пока достаточно.
Еще раз спасибо заранее.