如何在WPF中动态设置子位置

时间:2013-05-28 10:34:10

标签: wpf

我们在stackpannel内有三个控件现在我想动态地改变控制位置。 我们一直在搜索Google,但我们找不到任何解决方案。

请解决我的问题。

提前完成。

1 个答案:

答案 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);