2010-07-01 14 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