WPF: Get single points of a Path?
I have a Path
in WPF and I'd like to get the single 开发者_StackOverflowpoints 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!
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);
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.
精彩评论