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>[...]