2011-11-29 96 views
0

我用特定的數據填充列表框,代碼工作正常,但我需要添加一個滾動查看器到列表框,因爲裏面有很多元素,我嘗試使用ScrolViewer並放入listbox,但不起作用,這裏是代碼列表框中的滾動查看器

<StackPanel x:Name="Sites" Grid.Row="1" Orientation="Vertical"> 
    <ListBox x:Name="ListSites" > 
     <ListBox.ItemTemplate> 
      <DataTemplate> 
      <Button Width="460" Height="120" Click="click" Name="btn"> 
      <Button.Content> 
       <StackPanel Orientation="Vertical" Height="100" Width="460"> 
       <TextBlock Width="460" Name="txtname" FontSize="22" Text="{Binding name}" Height="40" Foreground="CadetBlue" /> 
       <TextBlock Width="460" Name="txtUrl" FontSize="22" Text="{Binding Url}" Height="60"/> 
       </StackPanel> 
       </Button.Content> 
       </Button> 
      </DataTemplate> 
     </ListBox.ItemTemplate> 
     </ListBox> 
    </StackPanel> 

回答

0

如果ListBox沒有給予無限的高度空間,那麼它應該在項目溢出它的邊界時自動滾動。例如,如果您的堆疊面板外部的第二個網格行設置了明確或「星號」高度,則列表框中的滾動條將自動顯示。

參見:Silverlight: Difficulty with ScrollViewer

0

你不應該需要一個ScrollViewer添加到您的ListBox。它將在空間不足時開始滾動。

但是,因爲你已經把一個ListBox裏面StackPanel它永遠不會認爲它運行的空間,因爲StackPanel在它的方向,以適應其內容的方向無限增長。

您需要爲您的ListBox使用不同的容器。

0
<ItemsControl.ItemsPanel> 
    <ItemsPanelTemplate> 
     <StackPanel Orientation="Vertical"/> 
    </ItemsPanelTemplate> 
</ItemsControl.ItemsPanel> 
1

我固定它,簡單地增加Height屬性在ListBox控件

+0

您已經發布的解決方案是由其他專家提出的沒有什麼不同 - 我可以問你爲什麼沒有選擇之一他們的答案? – Basic