gpt4 book ai didi

c# - 滚动包含 Expanders 的 ListView 不起作用

转载 作者:太空狗 更新时间:2023-10-29 23:34:25 26 4
gpt4 key购买 nike

我的 C# WPF 应用程序包含一个 ListView,其元素是 Expanders。这些扩展器中的每一个都包含一个带有 ListViewItems 的 ListView。这是一张照片: enter image description here

在右边你可以看到一个滚动条。那个 ScrollBar 是我的问题。它有两个问题:

  1. 在扩展列表上使用鼠标滚轮时滚动条不起作用。我指的是从“Controller”到“FullInstallation”的区域。如果将鼠标悬停在标题(“所有测试”)上,则 ScrollBar 会滚动。我认为 Expander 中的 ListView 默认情况下有一个 ScrollBar,它“窃取”了 MouseWheel 事件。但是,我不知道该怎么办。

  2. ScrollBar 在 Expander 项目上滚动,而不是在扩展器的内容上滚动。我的意思是,不可能向下滚动一点,而是您总是向下滚动至少 1 个扩展器项目。我希望滚动条能够滚动,这样就可以看到例如“所有测试”扩展器的一半。

图片显示了一个禁用的滚动条,但是通过缩小窗口,滚动条被启用。

到目前为止我尝试了什么:

  1. ScrollViewer outside the outer ListView:这解决了问题 1,但这意味着 MouseWheel 根本不起作用!这是因为外部 ListView 生成了自己的 ScrollViewer(使用 Snoop 发现了这一点),它“窃取”了 MouseWheel 事件。

  2. 将所有控件(ListView、Expander、ListViewItem)的所有 MouseWheel 事件重定向到 ScrollViewer:我再次在外部 ListView 之外使用了 ScrollViewer,这次我使用了 MouseWheel我所有控件的事件调用外部 ScrollViewer 的 MouseWheel 事件。这确实有效,但是对于鼠标指针的某些位置它没有。例如,在两个 ListViewItems 之间有一个 1 毫米的小空间,其中未捕获 MouseWheel 事件。或者在最后一个扩展器(“简短测试”)之后的底部。那里我没有得到任何事件。

我尝试了更多的东西,但没有得到任何进一步的结果。有谁知道如何解决这个问题?

祝你好运,基督徒

最佳答案

1) 关于当你有嵌套的项控件时如何编写附加行为来控制鼠标滚轮行为,请参见:WPF Nested ScrollViewer / ListBox Scrolling

2) 非虚拟化项控件支持平滑滚动,参见:Is it possible to implement smooth scroll in a WPF listview?

关于c# - 滚动包含 Expanders 的 ListView 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5499354/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com