当鼠标滚轮位于ScrollViewer的子控件上时,鼠标滚轮无法使用。

8
我原本期望我的ScrollViewer的子控件自动将MouseWheel事件返回给ScrollViewer,但事实并非如此。
我有一个包含ListBox的ScrollViewer。如果我手动调整ListBox的宽度小于ScrollViewer,则当鼠标位于ListBox上方时,MouseWheel对所有ScrollViewer都有效,但对ListBox没有影响。
那么这个问题的标准解决方法是什么呢?我需要在ListBox上放置一个事件触发器来触发父级的事件吗?还是我需要在代码后台处理和重定向事件呢?

1
答案在这里:http://serialseb.blogspot.com/2007/09/wpf-tips-6-preventing-scrollviewer-from.html - user601620
1个回答

16

ListBox的模板中有一个ScrollViewer,因此ScrollViewer将处理事件并阻止它们向上传播到视觉树。

通过在ScrollViewer内放置ListBox,您到底想实现什么?也许您需要重新定义ListBox的模板,但没有更多信息就无法确定。


我一开始并不知道 ScrollViewer 是 ListBox 模板的一部分,所以我一直以为必须将 ListBox 放在 ScrollViewer 中。谢谢。 - Rich

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接