2013-12-21 78 views
0

我在我的窗口中有這個,我將以編程方式添加項目到這些堆棧。問題是我無法滾動我的東西。我嘗試了一切,我可以在網上找到,但我不能。WPF堆棧面板滾動問題

<Border x:Name="Border_Output" Width="463" Height="463" CornerRadius="30" 
            BorderThickness="0" Background="White"> 
    <Grid> 
     <StackPanel x:Name="Restaurant_SearchOutputStack"/> 
     <StackPanel x:Name="Item_SearchOutputStack"/> 
     <StackPanel x:Name="Order_OutputStack"/> 
     <StackPanel x:Name="Menu_OutputStack"/> 
    </Grid> 
</Border> 
+3

你是什麼意思_i試過everything_?你有沒有試過['ScrollViewer'](http://msdn.microsoft.com/en-us/library/system.windows.controls.scrollviewer(v = vs.110).aspx)? – dkozl

+0

你的父窗口的大小是多少? –

+0

事實上,你已經給你的stackpanels提供了名字,這表明你確實正在將它們*添加到代碼*中。請考慮使用MVVM和數據綁定來做到這一點,這是首選的方式,忽略它會使WPF變得更加困難。網格並不是要滾動的,因爲它不是一個項目控件。使用像ListView一樣的容器來滾動。 – nvoigt

回答

3

如果您有一個堆棧面板,它將被分配它的項目大小,所以滾動條不會出現。

this article

正如你所看到的,具有一個StackPanel一個ListBox導致 ScrollViewer中消失,因爲StackPanel中給它的孩子他們所需要的 整體尺寸,呈現收集沒有 ScrollViewer中。

0

我找到了答案..它是用這種方式代替它。

<ScrollViewer VerticalScrollBarVisibility="Auto"> 
         <Grid> 
          <StackPanel x:Name="Restaurant_SearchOutputStack"/> 
          <StackPanel x:Name="Item_SearchOutputStack"/> 
          <StackPanel x:Name="Order_OutputStack"/> 
          <StackPanel x:Name="Menu_OutputStack"/> 
         </Grid> 
        </ScrollViewer> 

因爲當我使用一個堆棧我崩潰其他我想要正確發生。非常感謝球員。