问题
I have a Path
in WPF and I'd like to get the single points of this path. Is this somehow possible?
(I used a WPF built-in PathSegment and I'd like to get the points that WPF calculated)
Thanks for any hint!
回答1:
Geometry.GetFlattenedPathGeometry
returns "a polygonal approximation of the Geometry object." You can then iterate over the figures and segments of the flattened Geometry: each figure should consist of a single PolyLineSegment
, from which you can iterate over the Points property to get the points along the path. Thus:
PathGeometry g = Path.Data.GetFlattenedPathGeometry();
foreach (var f in g.Figures)
foreach (var s in f.Segments)
if (s is PolyLineSegment)
foreach (var pt in ((PolyLineSegment)s).Points)
Debug.WriteLine(pt);
回答2:
In WPF4 there is also the method GetPointAtFractionLength
, which lets you get the coordinates of any point and its tangent vector along the length of the path ranging from 0.0 - 1.0.
Very handy to "sample" an arbitrary amount of points along a path.
来源:https://stackoverflow.com/questions/2642100/wpf-get-single-points-of-a-path