如何更改画布上的路径位置。它不会通过Canvas.Left / Top / Right / Bottom属性移动而且它没有X,而不是Y. 如果有人知道它是怎么做的,请帮帮我。 例如:我有一些路径,我需要以编程方式为他改变位置。
<Canvas>
<Path Stroke="Black" StrokeThickness="10">
<Path.Data>
<PathGeometry>
<PathGeometry.Figures>
<PathFigureCollection>
<PathFigure StartPoint="100,80">
<PathFigure.Segments>
<PathSegmentCollection>
<PolyBezierSegment Points="90,200 140,200 160,200 180,200 430,190 430,280" />
</PathSegmentCollection>
</PathFigure.Segments>
</PathFigure>
</PathFigureCollection>
</PathGeometry.Figures>
</PathGeometry>
</Path.Data>
</Path>
</Canvas>
答案 0 :(得分:1)
它没有X
或Y
属性,因为Path对象并不关心它所在的 。
您可以在“画布”内部或“网格”内部或“StackPanel”内部放置路径。为什么路径在放入包含列和行的项目的网格中时需要X / Y? Grid及其Columns和Rows也有相同的推理。路径也没有与网格相关的Column
或Row
属性,对吧?
这些设置由所谓的附加属性设置。 Canvas定义了Canvas.Left
和Canvas.Top
等属性,您可以使用这些属性在Canvas中定位Path。它的工作方式与Grid和Grid.Column
/ Grid.Row
属性的工作方式相同。
实际上,值得注意的是,Canvas不提供X / Y附加属性,而是左/右和上/下,允许您可以选择与头寸对齐的位置。
XAML:
<Canvas>
<Path x:Name="mypath" Canvas.Left="50" Canvas.Top="25" .... />
</Canvas>
C#:
Canvas.SetLeft(mypath, 50.0);
Canvas.SetTop(mypath, 25.0);