我是 WPF 开发新手,我有一个 ListView,我想卡住标题行,以便当用户滚动列表时它不会滚动到屏幕之外。 我继承的 xaml 代码看起来像这样:
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
<DockPanel>
<forms:BindableGrid DockPanel.Dock="Top" [code snipped] >
<ListView.View>
<GridView>
<GridViewColumn Header="ColA" DisplayMemberBinding="{Binding ColA}" />
<GridViewColumn Header="ColB" DisplayMemberBinding="{Binding ColB}" />
[etc]
最佳答案
ListView
已经做到了这一点 - 它有一个内部 ScrollViewer
,仅滚动项目而不滚动标题。
问题是您的外部 ScrollViewer
告诉其子级(DockPanel
)它有无限的可用空间,而 DockPanel
告诉它到其子级,因此您的 ListView
最终会占用显示所有项目所需的空间,并且内部 ScrollViewer
不会显示。
如果您拿走外部 ScrollViewer
,ListView
应该会发现它的空间有限,并且内部 ScrollViewer
将出现。
这显然会影响 DockPanel
中的其余内容,因此我会看看会发生什么并从那里开始。
关于.net - WPF:如何卡住 ListView 标题行,使其不会滚动到屏幕之外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/659512/