我正在使用路径来创建特定的形状。将所有路径分组的最佳方法是什么,以便稍后我可以在另一个位置使用它们而无需重新定位路径?
任何建议都会很棒,谢谢!
如果问题是关于一个只有一个填充和描边的复杂形状,一个选项是只使用一个 Path 实例和一个PathGeometry和多个Figures。请参阅 MSDN 中的以下示例:
<Path Stroke="Black" StrokeThickness="1">
<Path.Data>
<PathGeometry>
<PathGeometry.Figures>
<PathFigureCollection>
<PathFigure IsClosed="True" StartPoint="10,100">
<PathFigure.Segments>
<PathSegmentCollection>
<LineSegment Point="100,100" />
<LineSegment Point="100,50" />
</PathSegmentCollection>
</PathFigure.Segments>
</PathFigure>
<PathFigure IsClosed="True" StartPoint="10,10">
<PathFigure.Segments>
<PathSegmentCollection>
<LineSegment Point="100,10" />
<LineSegment Point="100,40" />
</PathSegmentCollection>
</PathFigure.Segments>
</PathFigure>
</PathFigureCollection>
</PathGeometry.Figures>
</PathGeometry>
</Path.Data>
</Path>
然后您可以在画布中分组,然后重新定位您的画布。命名每个路径点将使您能够修改形状......您可以创建一个名为 MyOwnShape 的新类,它继承 Canvas 类,然后为画布的每个点附加一个事件以进行拖放,以便形状得到修改的。您也可以将您的内容放在烤架内,但您无法以这种精度定位您的形状。如果我完全理解你想要达到的目标。你的课程应该是这样的
class MyOwnShapes : Canvas {
List<Path> myListOfPaths;
我希望这个例子对你有好处。
public void AddPath(Path myPath){
this.Children.Add(path);
myListOfPaths.Add(path), // this is used for your internal computation so it wont affect the effective drawin components.
}
http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh465055.aspx http://www.windowsphonegeek.com/tips/drawing-in-wp7-3-understanding-path-shapes