PathGeometry представляет собой объект, который содержит информацию о геометрической фигуре, представленной путем последовательности точек, линий и дуг. Вместо того, чтобы хранить непосредственно точки и другие геометрические данные, PathGeometry хранит ссылки на коллекции, такие как PointCollection для точек, которые определяют границы фигуры.
Когда мы добавляем, удаляем или изменяем точки в этой коллекции, PathGeometry не получает немедленного уведомления об изменениях. Он просто ссылается на эту коллекцию и использует ее данные для отображения геометрии.
Поэтому, чтобы обновить значения точек в PathGeometry, нам нужно напрямую изменить коллекцию, на которую он ссылается. Например, если у нас есть PathGeometry с PointCollection, мы можем добавить новую точку, удалив старую или изменить координаты существующей точки, изменяя PointCollection.
Вот пример кода, который показывает, как обновить точки в PathGeometry:
// Создаем новую точку Point newPoint = new Point(100, 100); // Получаем ссылку на коллекцию точек в PathGeometry PointCollection points = pathGeometry.Figures[0].Segments[0] as PointCollection; // Добавляем новую точку в коллекцию points.Add(newPoint); // Теперь PathGeometry будет отображать обновленную фигуру с новой точкой
Это позволяет нам динамически изменять форму и положение фигуры, представленной в PathGeometry, путем изменения коллекции точек.
Стоит отметить, что для обновления фигуры на экране после изменения PathGeometry требуется перерисовка. В WPF или UWP это можно сделать, вызывая метод InvalidateVisual() у элемента управления, содержащего PathGeometry.