You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WPF ListView横向滚动失效求助:已设滚动属性仍无法滚动

WPF ListView滚动失效问题修复

你的问题出在布局约束不足和滚动模式配置不当两个关键环节,以下是具体修复方案:

1. 修正ListView布局约束

当前ListView设置了HorizontalAlignment="Left"和Width="auto",会导致ListView宽度被所有列的总宽度完全撑满,ScrollViewer没有可滚动的空间。修改方式:

  • 移除HorizontalAlignment="Left",或改为HorizontalAlignment="Stretch",让ListView宽度限制在父Grid列的范围内
  • 确保父Grid的Column有明确宽度限制(比如设置Width="800"),或父容器本身有固定尺寸

2. 调整滚动模式

ScrollViewer.CanContentScroll="True"是基于项的滚动模式,对GridView的横向滚动支持不佳,改为像素滚动模式即可解决:

  • 设置ScrollViewer.CanContentScroll="False"

修改后的完整代码

<ListView Grid.Column="0"
          Height="auto" Width="auto" 
          Margin="20, 20" 
          ItemsSource="{Binding Libraries, Mode=OneWay}"
          ScrollViewer.HorizontalScrollBarVisibility="Visible"
          ScrollViewer.VerticalScrollBarVisibility="Visible"
          ScrollViewer.CanContentScroll="False">
    <ListView.View>
        <GridView>
            <GridViewColumn Header="Id" Width="30" DisplayMemberBinding="{Binding Id}" />
            <GridViewColumn Header="Telephone number" Width="120" DisplayMemberBinding="{Binding TelephoneNumber}" />
            <GridViewColumn Header="Website" Width="150" DisplayMemberBinding="{Binding WebsiteAddress}" />
            <GridViewColumn Header="Email" Width="150" DisplayMemberBinding="{Binding EmailAddress}" />
            <GridViewColumn Header="NIP" Width="150" DisplayMemberBinding="{Binding NipNumber}" />
            <GridViewColumn Header="REGON" Width="150" DisplayMemberBinding="{Binding RegonNumber}" />
            <GridViewColumn Header="DUNS" Width="150" DisplayMemberBinding="{Binding DunsNumber}" />
            <GridViewColumn Header="Date" Width="150" DisplayMemberBinding="{Binding DateOfCommencementOfActivities}" />
            <GridViewColumn Header="Voivodeship" Width="150" DisplayMemberBinding="{Binding Voivodeship}" />
            <GridViewColumn Header="City" Width="150" DisplayMemberBinding="{Binding City}" />
            <GridViewColumn Header="ZIP Code" Width="150" DisplayMemberBinding="{Binding ZipCode}" />
        </GridView>
    </ListView.View>
</ListView>

额外补充

  • 如果父Grid的Column没有固定宽度,可给ListView设置MaxWidth属性强制限制最大宽度,当列总宽度超过该值时,横向滚动条会自动生效
  • 若垂直滚动也存在问题,同理确保ListView高度被父容器限制(比如设置MaxHeight或父容器有固定高度),避免ListView被内容完全撑满

内容的提问来源于stack exchange,提问作者Giusek keisuG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 11:11:15