2

我正在使用路径来创建特定的形状。将所有路径分组的最佳方法是什么,以便稍后我可以在另一个位置使用它们而无需重新定位路径?

任何建议都会很棒,谢谢!

4

2 回答 2

5

如果问题是关于一个只有一个填充和描边的复杂形状,一个选项是只使用一个 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>
于 2012-11-05T08:15:10.873 回答
2

然后您可以在画布中分组,然后重新定位您的画布。命名每个路径点将使您能够修改形状......您可以创建一个名为 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

于 2012-11-05T08:00:20.133 回答