类似DataGrid的滚动行为

时间:2011-12-27 20:07:03

标签: wpf xaml datagrid user-controls scroll

我需要使用标题和项目窗格实现控件。此控件应具有类似于DataGrid的滚动行为。标题应与项目一起水平滚动,但应在垂直滚动时固定。我该如何实现这种行为?

1 个答案:

答案 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.IsSharedSizeScopeGrid.SharedSizeGroup将标题网格列与您的内容网格列对齐