我需要使用标题和项目窗格实现控件。此控件应具有类似于DataGrid的滚动行为。标题应与项目一起水平滚动,但应在垂直滚动时固定。我该如何实现这种行为?
答案 0 :(得分:2)
我会使用两个ScrollViewers,而不是一个
这是我将使用的控件布局
<DockPanel>
<ScrollViewer x:Name="HeaderScrollViewer" DockPanel.Dock="Top">
<Grid x:Name="Headers" />
</ScrollViewer>
<ScrollViewer x:Name="ContentScrollViewer">
<Grid x:Name="Content" />
</ScrollViewer>
</DockPanel>
要使这项工作正常,有几点需要注意。
隐藏HeaderScrollViewer
上的滚动条。 ScrollViewer仅用于功能 - 用户实际上不会与它进行交互。
当ContentScrollViewer
水平滚动时,手动滚动HeaderScrollViewer
相同的距离。
使用Grid.IsSharedSizeScope和Grid.SharedSizeGroup将标题网格列与您的内容网格列对齐