WPF: ItemsControl with scrollbar (ScrollViewer) WPF: ItemsControl with scrollbar (ScrollViewer) wpf wpf

WPF: ItemsControl with scrollbar (ScrollViewer)


To get a scrollbar for an ItemsControl, you can host it in a ScrollViewer like this:

<ScrollViewer VerticalScrollBarVisibility="Auto">  <ItemsControl>    <uc:UcSpeler />    <uc:UcSpeler />    <uc:UcSpeler />    <uc:UcSpeler />    <uc:UcSpeler />  </ItemsControl></ScrollViewer>


You have to modify the control template instead of ItemsPanelTemplate:

<ItemsControl >    <ItemsControl.Template>        <ControlTemplate>            <ScrollViewer x:Name="ScrollViewer" Padding="{TemplateBinding Padding}">                <ItemsPresenter />            </ScrollViewer>        </ControlTemplate>    </ItemsControl.Template></ItemsControl>

Maybe, your code does not working because StackPanel has own scrolling functionality. Try to use StackPanel.CanVerticallyScroll property.


Put your ScrollViewer in a DockPanel and set the DockPanel MaxHeight property

[...]<DockPanel MaxHeight="700">  <ScrollViewer VerticalScrollBarVisibility="Auto">   <ItemsControl ItemSource ="{Binding ...}">     [...]   </ItemsControl>  </ScrollViewer></DockPanel>[...]