滚动条,如果项目超出itemsControl

时间:2011-05-28 13:19:22

标签: c# .net wpf

我有 ItemControl

它为ObservableCollection内的每条记录显示一个面板

我的问题是.......

当ObservableCollection增加窗口的大小无法容纳更多面板时,它只显示前六个面板。

所以标准,ObservableCollection中每个记录的一个面板无法完成。

所以,我需要滚动条,以便我可以访问每个面板。 它是如何实现的?

请参阅下面的一个屏幕截图和此处的Code

enter image description here

感谢......

2 个答案:

答案 0 :(得分:6)

您需要在ScrollViewer内托管您的面板。这允许它超出可用空间,而ScrollViewer添加一个滚动条。

您可以通过修改ItemsControl模板来执行此操作:

<ItemsControl>
  <ItemsControl.Template>
    <ControlTemplate>
     <ScrollViewer>
       <ItemsPresenter/>
     </ScrollViewer>
   </ControlTemplate>
  </ItemsControl.Template>
</ItemsControl>

答案 1 :(得分:0)

将您想要滚动条的任何控件放入ScrollViewer。从MSDN获取的示例:

<ScrollViewer HorizontalScrollBarVisibility="Auto">
    <StackPanel VerticalAlignment="Top" HorizontalAlignment="Left">
      <TextBlock TextWrapping="Wrap" Margin="0,0,0,20">Scrolling is enabled when it is necessary. 
      Resize the window, making it larger and smaller.</TextBlock>
      <Rectangle Fill="Red" Width="500" Height="500"></Rectangle>
    </StackPanel>
  </ScrollViewer>