WPF - 滚动视图后面的可点击内容

3

有没有可能在 scrollviewer 后面拥有内容,仍然能够对用户鼠标输入做出响应?

<Grid>
    <Button Width="50" Height="50"/>
    <ScrollViewer Background="{x:Null}"/>
</Grid>

我尝试过使用z-index和null背景的组合,但似乎无法阻止scrollviewer不向下传递事件。


这听起来有点像黑客……你的总体目标是什么?可能有更好的方法来实现它。 - Sheridan
将ScrollViewer的IsHitTestVisible属性设置为False,可以让您单击其后面的控件。但这是一个奇怪的要求,因为这样做会使您的ScrollViewer对自身的任何点击完全透明。 - Nitin
你解决了这个问题吗? - ZSH
2个回答

4
为了防止点击事件被触发,将您的滚动视图设置为不可聚焦:
<ScrollViewer Focusable="False" />

1
这对我很有效。我有一些可以选择并且内部带有滚动查看器的控件。通过使用 Focusable="False",我可以选择滚动查看器后面的控件,并且仍然可以正常地与滚动查看器交互(鼠标滚轮和拖动滚动条都可以正常工作,没有问题)。 - Crown

0

滚动视图控件正在吞噬点击消息。您不希望将物品放在其后面。

最好将物品放在滚动视图控件内部。您可以创建一个包含内容和用户控件的网格。该控件可以使用绘制颜色为“透明”的矩形进行主题设置,使其透明。该控件仍然可点击,并且仍然会填充滚动内容中的所有空间。


但是本来应该在后面的东西会滚动 - wforl
我假设你只是想要可点击性,一个坚实的滚动不可见块并不重要。但如果你想要可点击区域,你可能需要在 ScrollViewer 上处理点击事件,并将其转发到 ScrollViewer 后面的内容。 - Lee Louviere

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