[Я создал класс анимации DrawingLine
для рисования узоров.
Конструктор запускает процесс создания и анимации линий:
internal DrawingLine(double x, double y, int _thickness, Brush _brush, Canvas _canvas)
В конце анимации это метод генерирует новую строку:
void CreateNewLine(object sender, EventArgs e)
{
Line newLine = new Line();
switch (lines.Count % 2 == 0)
{
case true:
{
if (lines.Count < 18)
{
newLine.X1 = 0;
newLine.Y1 = 180 - offset;
newLine.X2 = 0;
newLine.Y2 = 180 - offset;
}
// ... <-- Here is the math determines the positions of the points of the line
}
Метод производит анимацию:
void AnimateXY()
{
DoubleAnimation lineXAnimation = new DoubleAnimation();
lineXAnimation.From = CurrentLine.X1;
lineXAnimation.To = to_X;
lineXAnimation.Duration = TimeSpan.FromSeconds(duration);
DoubleAnimation lineYAnimation = new DoubleAnimation();
lineYAnimation.From = CurrentLine.Y1;
lineYAnimation.To = to_Y;
lineYAnimation.Duration = TimeSpan.FromSeconds(duration);
lineYAnimation.Completed += CreateNewLine;
CurrentLine.BeginAnimation(Line.X2Property, lineXAnimation);
CurrentLine.BeginAnimation(Line.Y2Property, lineYAnimation);
}
Вопрос: Как лучше всего l oop эту анимацию, чтобы не было памяти утечки? Также хотелось бы услышать общие рекомендации по улучшению структуры таких занятий. Изображение выкройки прилагается.] 1