我们在stackpannel内有三个控件现在我想动态地改变控制位置。 我们一直在搜索Google,但我们找不到任何解决方案。
请解决我的问题。
提前完成。
答案 0 :(得分:5)
如果要更改容器内元素的位置,则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);