从代码中更改画布中的绝对位置

本文关键字:位置 布中 代码 | 更新日期: 2023-09-27 17:53:44

我正在创建自己的usercontrol,其中我有一个画布,将容纳六边形。

我现在在添加AddItem函数的阶段,因为我不希望六边形重叠,我显然想使用画布的定位方法。但是我如何从"正常"代码访问它们呢?

我有一个Path对象hexagon它保存着六边形数据我想把它添加到画布上也就是container

那么我如何从c#代码中更改定位呢?

我知道,在XAML我的路径看起来像这样,当在画布(请注意画布)。Left and Canvas.Top),你需要滚动一下…

<Canvas x:Name="Container" ScrollViewer.HorizontalScrollBarVisibility="Visible">
    <Path d:LayoutOverrides="None" d:LastTangent="0,0" Stroke="White" Fill="#343434" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0" Width="50" Height="50" Stretch="Fill" Data="M8.660254,0 L17.320508,5 17.320508,15 8.660254,20 0,15 0,5 8.660254,0 z"/>
    <Path d:LayoutOverrides="None" d:LastTangent="0,0" Stroke="White" Fill="#343434" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0" Width="50" Height="50" Stretch="Fill" Data="M8.660254,0 L17.320508,5 17.320508,15 8.660254,20 0,15 0,5 8.660254,0 z" Canvas.Left="25" Canvas.Top="37.5"/>
</Canvas>

从代码中更改画布中的绝对位置

使用此方法

   Path myPath = ....; // obtain your path here
   Canvas.SetLeft(myPath,25);
   Canvas.SetTop(myPath,25);