Issue is in your ScrollViewer wrapping over ItemsPresenter.
<ScrollViewer Focusable="false" Padding="{TemplateBinding Padding}"
Template="{DynamicResource TreeViewScrollViewerControlTemplate}" >
<ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
</ScrollViewer>
You haven't posted template TreeViewScrollViewerControlTemplate
. I guess you are missing GridViewHeaderRowPresenter
over there.
Anyhow you can use default style provided i.e. GridView.GridViewScrollViewerStyleKey
.
<ScrollViewer Focusable="false" Padding="{TemplateBinding Padding}"
Style="{DynamicResource {x:Static GridView.GridViewScrollViewerStyleKey}}">
<ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
</ScrollViewer>