【问题标题】:WPF: How to freeze a ListView header row so that it won't scroll off the screenWPF:如何冻结 ListView 标题行,使其不会滚动到屏幕外
【发布时间】:2023-04-02 18:10:01
【问题描述】:

我是 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]

【问题讨论】:

    标签: .net wpf listview header gridviewcolumn


    【解决方案1】:

    ListView 已经这样做了 - 它有一个内部 ScrollViewer,它只滚动项目而不滚动标题。

    问题是你的外部ScrollViewer 告诉它的孩子(DockPanel)它有无限的可用空间,而DockPanel 告诉它的孩子,所以你的ListView 最终占用了尽可能多的空间空间,因为它需要显示所有项目并且内部ScrollViewer 不显示。

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

    这显然会影响您DockPanel 中的其他内容,所以我会看看会发生什么,然后从那里开始。

    【讨论】:

    • 太棒了。只是我需要以我想要的方式显示 ListView 的提示。在这样的情况下,您不需要滚动查看器...
    猜你喜欢
    • 2020-03-07
    • 2012-03-27
    • 1970-01-01
    • 2012-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-25
    • 2021-02-19
    相关资源
    最近更新 更多