В моем приложении wpf я хочу обновить линию на холсте (изменить координаты начальной и конечной точек) и просмотреть изменения. Проблема в том, что я добавляю строку, но вижу только начальное и конечное состояние.
Есть ли способ сделать обновление строки / холста в реальном времени? Я хочу увидеть, как линия меняет длину / позицию.
например, я получаю список пар начала / конца для строки. если я зациклю список и обновлю координаты линии значениями из пар, я не смогу увидеть промежуточные состояния.
Я попытался установить видимость для линии и холста, чтобы они были видимыми, чтобы заставить их обновить, но это не работает. Если я просто добавляю новые строки, я не вижу, как они добавляются, только последний шаг.
В приведенном ниже коде метод DrawLine вызывается из цикла каждый раз, когда у меня появляются новые точки.
есть предложения?
public void DrawLine(List<Library2d.Point> points)
{
PathFigure myPathFigure = new PathFigure();
myPathFigure.StartPoint = new System.Windows.Point(points.ElementAt(0).X, points.ElementAt(0).Y);
LineSegment myLineSegment = new LineSegment();
myLineSegment.Point = new System.Windows.Point(points.ElementAt(1).X, points.ElementAt(1).Y);
PathSegmentCollection myPathSegmentCollection = new PathSegmentCollection();
myPathSegmentCollection.Add(myLineSegment);
myPathFigure.Segments = myPathSegmentCollection;
PathFigureCollection myPathFigureCollection = new PathFigureCollection();
myPathFigureCollection.Add(myPathFigure);
PathGeometry myPathGeometry = new PathGeometry();
myPathGeometry.Figures = myPathFigureCollection;
if (myPath == null)
{
myPath = new Path();
myPath.Stroke = Brushes.ForestGreen;
myPath.StrokeThickness = 1;
canvas.Children.Add(myPath);
}
myPath.Data = myPathGeometry;
myPath.Visibility = Visibility.Visible;
myPath.InvalidateMeasure();
canvas.Visibility = Visibility.Visible;
canvas.InvalidateMeasure();
}