VirtualizingStackPanel
VirtualizingStackPanel
<TreeView ItemTemplate="{StaticResource StatusDataTemplate}" Margin="0" ScrollViewer.VerticalScrollBarVisibility="Visible" ScrollViewer.HorizontalScrollBarVisibility="Hidden" ScrollViewer.CanContentScroll="True" BorderThickness="0" Background="Transparent" x:Name="listContent" VirtualizingStackPanel.VirtualizationMode="Standard" VirtualizingStackPanel.IsVirtualizing="False" ScrollViewer.PanningMode="VerticalOnly" ScrollViewer.PanningDeceleration="5" IsManipulationEnabled="True"> <!-- VirtualizingStackPanel.IsVirtualizing="True" --> <TreeView.Resources> <sys:Double x:Key="{x:Static SystemParameters.VerticalScrollBarButtonHeightKey}">60</sys:Double> </TreeView.Resources> <TreeView.ItemsPanel> <ItemsPanelTemplate> <VirtualizingStackPanel /> </ItemsPanelTemplate> </TreeView.ItemsPanel> <TreeView.ItemContainerStyle> <Style TargetType="{x:Type TreeViewItem}"> <EventSetter Event="MouseDown" Handler="OnItemMouseDown" /> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type TreeViewItem}"> <ContentPresenter x:Name="PART_Header" ContentSource="Header" /> </ControlTemplate> </Setter.Value> </Setter> <Setter Property="Width"> <Setter.Value> <Binding Path="ActualWidth" RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType={x:Type ScrollContentPresenter}}" /> </Setter.Value> </Setter> </Style> </TreeView.ItemContainerStyle> </TreeView>