相关文章推荐
爱听歌的鞭炮  ·  【现代 CSS】标准滚动条控制规范 ...·  1 月前    · 
有爱心的饼干  ·  滚动条的地图模式和滚动条模式 - ...·  1 月前    · 
文质彬彬的作业本  ·  【Java笔记】给JTextArea添加滚动 ...·  1 月前    · 
狂野的松树  ·  vb.net list 使用方法 ...·  1 月前    · 
深情的铁板烧  ·  yolov8-pose.pt转为onnx ...·  8 月前    · 
一身肌肉的麦片  ·  OPENROWSET ...·  12 月前    · 
爱旅游的茴香  ·  ORA-01830: date ...·  1 年前    · 
欢快的围巾  ·  如何从零开始开发一个 VS Code ...·  1 年前    · 
飞奔的大脸猫  ·  ORACLE中声明变量:define ...·  1 年前    · 
Code  ›  WPF 解决 ListView 的滚动条不显示开发者社区
listview wpf 滚动条
https://cloud.tencent.com/developer/article/1402508
大气的日光灯
1 年前
林德熙

WPF 解决 ListView 的滚动条不显示

前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP 最新优惠活动
返回腾讯云官网
林德熙
首页
学习
活动
专区
工具
TVP 最新优惠活动
返回腾讯云官网
社区首页 > 专栏 > 林德熙的博客 > WPF 解决 ListView 的滚动条不显示

WPF 解决 ListView 的滚动条不显示

作者头像
林德熙
发布 于 2019-03-13 15:07:52
3.4K 0
发布 于 2019-03-13 15:07:52
举报

本文告诉大家如何解决一个诡异的问题,如果有一个 ListView 同时里面的元素的高度很长,但是滚动条就是不显示,怎么让这个滚动条显示

本文不属于小白博客,忽略所有的业务环境和样式问题以及对 ScrollViewer 的设置问题

在开始发现这个问题请先看 ListView 的滚动条,通过继承 ListView 或 ListBox 可以在 Load 事件拿到滚动条,需要判断 ScrollViewer 的 ExtentHeight 的大小

        private void ListBox_Loaded(object sender, RoutedEventArgs e)
            _scroll = this.VisualDescendant<ScrollViewer>();
        }

如果拿到的 _scroll 的 ExtentHeight 的大小相对预期小,则可以继续看本文的方法,如果有一些方法 Load 之后还没有设置数据可以等待设置数据之后通过 Dispatcher.InvokeAsync 的方法判断 ExtentHeight 的高度

如果这时高度太小,可能是因为 ItemsPresenter 没布局,尝试使用下面的代码解决

        protected override void OnItemsSourceChanged(IEnumerable oldValue, IEnumerable newValue)
            Dispatcher.InvokeAsync(() =>
                InvalidateMeasure();
                if (_scroll != null)
                    ItemsPresenter itemsPresenter = _scroll.Content as ItemsPresenter;
                    var size = new Size(double.PositiveInfinity, double.PositiveInfinity);
                    itemsPresenter?.Measure(size);
 
推荐文章
爱听歌的鞭炮  ·  【现代 CSS】标准滚动条控制规范 scrollbar-color 和 scrollbar-width - ChokCoco
1 月前
有爱心的饼干  ·  滚动条的地图模式和滚动条模式 - Visual Studio (Windows) | Microsoft Learn
1 月前
文质彬彬的作业本  ·  【Java笔记】给JTextArea添加滚动条_jtextarea 滚动条
1 月前
狂野的松树  ·  vb.net list 使用方法 vb中的list_mob6454cc68daf3的技术博客_
1 月前
深情的铁板烧  ·  yolov8-pose.pt转为onnx - CSDN文库
8 月前
一身肌肉的麦片  ·  OPENROWSET (Transact-SQL) - SQL Server | Microsoft Learn
12 月前
爱旅游的茴香  ·  ORA-01830: date format picture ends before converting entire input string - NW_KNIFE - 博客园
1 年前
欢快的围巾  ·  如何从零开始开发一个 VS Code 插件?_苏南South的博客-CSDN博客
1 年前
飞奔的大脸猫  ·  ORACLE中声明变量:define variable declare - konglingbin - 博客园
1 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号