-1

我们在 stackpannel 中有三个控件,现在我想动态更改控件位置。我们搜索了谷歌,但没有找到任何解决方案。

请解决我的问题。

提前谢谢。

4

1 回答 1

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);
于 2013-05-28T10:38:15.530 回答