2011-12-27 29 views
0

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

回答

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对准你的头格列与内容网格列

+0

非常感谢您! – user282603 2011-12-28 19:45:21