当前位置: 首页 > 编程语言 > C#

当内容可变高度时,列表框滚动条的缩略图会改变大小Share

时间:2023-04-10 23:43:28 C#

当内容可变高度时,列表框滚动条的缩略图会改变大小我有一个ListBox,它显示许多对象,每个对象的高度都可以根据每个对象具有的值的数量而定。请参阅我之前回答的问题。许多对象是5行高,而其他对象是1行。ListBox中的滚动条似乎不喜欢这样,可能是由于虚拟化。当您滚动时,滚动条上的滑块会根据当时实际适合该框的项目数更改其大小。这使得拇指有时非常大,有时又非常小。由于此ListBox也包含在TabControl中,因此当您从一个选项卡切换到另一个选项卡时,当您返回时,ListBox通常会滚动到其他部分。任何想法如何解决这样的问题?附加信息:禁用虚拟化确实解决了滚动问题,但代价是初始显示变慢。但是,使用内部内容调整ListBox的大小会在水平调整大小时(垂直方向很好)导致一些重大滞后,我假设这是由于我的模板宽度发生变化并且需要在每个元素上重新绘制:Drawbordersaroundedgesforvisual分组,其中val将拉伸到内容大小。列表框也有Horizo??ntalContentAlignmment=Stretch以确保这看起来正确。-------------------var-opt-val-----------------opt-val-----------------opt-val------------------注意:让我知道是否需要在另一个问题中提出这个问题,我将拆分问题,为什么不关闭ListBox本身的任何大小限制,让它成为内容的大小并将其包装到ScrollViewer中,为后者设置适当的大小?标记应如下所示:如果以这种方式实现,我看不到滚动过程中拇指的大小发生变化。在ListBox上设置ScrollViewer.CanContentScroll="False",这将禁用所谓的“逻辑滚动”,它根据项目的数量而不是高度滚动(“物理滚动”)。禁用虚拟化或使ListBox中的项目具有相同的高度。如果你的项目少于100个,那么你可以不用虚拟化。以上是C#学习教程:当内容变高时,列表框滚动条的缩略图会改变所有分享内容的大小。如果对大家有用,需要进一步了解C#学习教程,还望大家多多关注~本文整理自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: