.net - WPF:如何卡住 ListView 标题行,使其不会滚动到屏幕之外

标签 .net wpf listview header gridviewcolumn

我是 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 不会显示。

如果您拿走外部 ScrollViewerListView 应该会发现它的空间有限,并且内部 ScrollViewer 将出现。

这显然会影响 DockPanel 中的其余内容,因此我会看看会发生什么并从那里开始。

关于.net - WPF:如何卡住 ListView 标题行,使其不会滚动到屏幕之外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/659512/

相关文章:

.net - 如何在 .NET 中获取文件扩展名的描述

c# - WPF自定义控件中的"The type reference cannot find a public type..."错误

java - 可以使用 JavaFX 中的 ListView 实现以下 UI

asp.net - 在 ListView 布局模板中显示总计

android - 单 Spinner 多项 Activity

c# - 为什么 NumberFormatInfo 中包含货币而不是其他单位

.net - 本地主机和127.0.0.1不一样吗?

.net - 如何从 "non-standard"事件中获取 Rx 中的 IObservable<T>?

wpf - 在转换器 wpf 中将 double.NaN 转换为相关区域性

WPF child 自定义窗口边框