我们在 stackpannel 中有三个控件,现在我想动态更改控件位置。我们搜索了谷歌,但没有找到任何解决方案。
请解决我的问题。
提前谢谢。
如果要更改容器内元素的位置,则 StackPanel 是错误的容器。它旨在将(!)元素堆叠在一起(或彼此并排),间距由每个元素的边距决定。
如果你想移动东西,那么你需要一个Canvas
. 有了这个,您可以从代码更改画布上元素的位置。
例如,如果您有以下情况:
<Canvas>
<Rectangle x:Name="Rectangle1" Canvas.Left="40" Canvas.Top="31"
Width="63" Height="41" Fill="Blue" />
<Ellipse x:Name="El;ipse1" Canvas.Left="130" Canvas.Top="79"
Width="58" Height="58" Fill="Blue" />
<Path x:Name="Path1" Canvas.Left="61" Canvas.Top="28"
Width="133" Height="98" Fill="Blue"
Stretch="Fill" Data="M61,125 L193,28"/>
</Canvas>
然后,您可以像这样更改元素的位置:
Rectangle1.SetValue(Canvas.TopProperty, 45);
Rectangle1.SetValue(Canvas.LeftProperty, 60);