如果我替换了一个ScrollViewer控件模板,使其包含另一个滚动查看器,那么有些时候它们会一起滚动。
例如,GridView类在以下模板上有一个变体,可确保列标题始终与列表视图的内容对齐,即使用户向右滚动(在此示例中&# 34;列"是GridViewColumnCollection
填充列)
<ScrollViewer HorizontalScrollBarVisibility="Visible">
<ScrollViewer.Style>
<Style TargetType="{x:Type ScrollViewer}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ScrollViewer}">
<DockPanel>
<ScrollViewer DockPanel.Dock="Top">
<GridViewHeaderRowPresenter Columns="{StaticResource Columns}" />
</ScrollViewer>
<ScrollBar DockPanel.Dock="Bottom" Name="PART_HorizontalScrollBar" Orientation="Horizontal"
Minimum="0.0" Maximum="{TemplateBinding ScrollableWidth}" ViewportSize="{TemplateBinding ViewportWidth}"
Value="{Binding Path=HorizontalOffset,RelativeSource={RelativeSource TemplatedParent},Mode=OneWay}" />
<ScrollContentPresenter Name="PART_ScrollContentPresenter" Content="{TemplateBinding Content}" />
</DockPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ScrollViewer.Style>
<GridViewHeaderRowPresenter Columns="{StaticResource Columns}" />
</ScrollViewer>
这是如何运作的?
(我问我是因为我需要修改GridView
模板并且我设法破坏了这项功能 - 我试图弄清楚如何修复它但找到它困难,因为我不明白为什么它首先起作用!)