2010-07-01 40 views
0

所以我是新来的使用WPF,并不能找出如何使一个简单的方法有多个控件的列可以轻松地添加/减少,仍然可以滚动。举例来说(我的情况),我有两个文本框和一个按钮,需要为许多“项目”添加按钮。我想在3列布局中将它们放在一起,并使用相同的滚动条进行全部滚动。如何制作多个控件(列)可滚动的堆栈?

最好的情况下,结果会像多个堆栈面板(在我的情况3)充满了任意数量的控件,所有的控件都使用相同的滚动条滚动。由于这似乎不起作用,我该怎么做呢?非常感谢,无论我的问题多么糟糕,你们总是非常乐于助人。

+0

标题中不需要[WPF]标记。 – Robaticus 2010-07-01 15:00:55

回答

2

我认为WrapPanel是你想要的。

我发现了this tutorial,它简洁地解释了它的用法。如果你设置了Orientation="Vertical"它应该按你的需要布置。

Panels MSDN页面提供了有关不同面板以及应该如何使用它们的更多信息。 WrapPanel页面为here

1

您是否尝试将所有三个StackPanels放入ScrollViewer

+0

我以为你只能把一个控件放在scrollviewer中。我错了吗? – SirDinosaur 2010-07-01 15:06:20

+1

@SirDinosaur - 我认为你需要把它们放在另一个容器中,但这当然是可能的。 – ChrisF 2010-07-01 15:10:20

+0

我只需要找出哪个容器效果最好。最坏的情况我会用WrapPanel来做,这很好,但我宁愿有一个更好的解决方案。 – SirDinosaur 2010-07-01 15:19:45

2
<ScrollViewer ...> 
    <Grid> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition/> 
     <ColumnDefinition/> 
     <ColumnDefinition/> 
    </Grid.ColumnDefinitions> 
    <StackPanel Grid.Column="0" ...> 
     ... 
    </StackPanel> 
    <StackPanel Grid.Column="1" ...> 
     ... 
    </StackPanel> 
    <StackPanel Grid.Column="2" ...> 
     ... 
    </StackPanel> 
    </Grid> 
</ScrollViewer> 
+0

我正在尝试,但网格不会根据堆栈面板的大小来调整它的高度。建议? – SirDinosaur 2010-07-01 15:15:26

+0

我已经测试过它,它的工作原理与您所描述的一样,您需要它。也许你设置了网格的高度?或StackPanels的? – Andy 2010-07-02 08:36:10