У меня возникла проблема с обновлением холста в цикле for в WPF. В моем приложении у меня есть данные из stickfigures из большого количества кадров, и я хочу нарисовать stickfigures из двух разных записей рядом друг с другом. Я знаю, что функция рисования работает, но я не могу заставить свой код постоянно обновлять холст. Я только вижу, что на самом деле я смотрю рисунок с последнего кадра. Я знаю, что для других фреймов вычисляются значения stickfigures, но они не отображаются на холсте.WPF: обновление холста в цикле for
Я рисую stickfigures, используя функции PolyLine.
Вот цикл, который я использую.
for (int i = 0; i < recording1.Count; i++)
{
skeletCanvas1.Children.Clear();
skeletCanvas2.Children.Clear();
skeletCanvas1.Children.Add(drawLine(points1((double[])recording1[i]), brush1));
skeletCanvas1.Children.Add(drawLine(points2((double[])recording1[i]), brush1));
skeletCanvas1.Children.Add(drawLine(points3((double[])recording1[i]), brush1));
skeletCanvas1.Children.Add(drawLine(points4((double[])recording1[i]), brush1));
skeletCanvas1.Children.Add(drawLine(points5((double[])recording1[i]), brush1));
skeletCanvas2.Children.Add(drawLine(points1((double[])recording2[i]), brush2));
skeletCanvas2.Children.Add(drawLine(points2((double[])recording2[i]), brush2));
skeletCanvas2.Children.Add(drawLine(points3((double[])recording2[i]), brush2));
skeletCanvas2.Children.Add(drawLine(points4((double[])recording2[i]), brush2));
skeletCanvas2.Children.Add(drawLine(points5((double[])recording2[i]), brush2));
skeletCanvas1.UpdateLayout();
skeletCanvas2.UpdateLayout();
System.Threading.Thread.Sleep(100);
}
Благодарим за помощь.
Вам нужно «BackgroundWorker», делая 'Thread.Sleep()' в потоке пользовательского интерфейса, чтобы заморозить ваше приложение. –
Пожалуйста, разместите снимок экрана о том, что вам нужно, так как есть вероятность, что есть намного лучший, более чистый и масштабируемый способ сделать то, что вам нужно. –
Если вы создаете «фигуру палки», вы должны привязать ObservableCollection точек к списку линий в вашем UI. –