我只想在用户向左或向右拖动滚动条时才能获得活动。
当我使用MouseClick事件时,它也包含整个画布......
我发现有一个事件处理程序“ScrollChanged”,但这并不是我想要的,因为我的画布宽度每秒增长10次,每秒造成10次ScrollChanged事件。
我想通过用鼠标拖动滚动条来获取事件
<ScrollViewer x:Name="coordinateScroll" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto" Margin="75,0,0,0" Width="1125" Height="750" Background="Transparent" MouseWheel="coordinateSystemBackground_MouseWheel" MouseDoubleClick="coordinateScroll_MouseDoubleClick " ScrollChanged="coordinateScroll_ScrollChanged" >
<Canvas x:Name="coordinateSystem" HorizontalAlignment="Left" VerticalAlignment="Top" Cursor="Cross" UseLayoutRounding="False" Width="1125" Height="720" Background="Transparent" MouseWheel="coordinateSystemBackground_MouseWheel" >
</Canvas>
</ScrollViewer>
答案 0 :(得分:1)
从我理解你的方式来看,只要用户向左或向右拖动滚动条,您就会尝试访问ScrollViewer
。为此,请使用ScrollChanged
的{{1}}事件。在事件处理程序中,您将拥有ScrollViewer
和sender
个参数。要访问e
的属性,只需将ScrollViewer
转换为sender
,如下所示:
ScrollViewer
这应该允许您访问有关ScrollViewer currentViewer = (ScrollViewer)sender;
。
如果您遇到了Canvas的宽度触发ScrollChanged事件的问题,那么请检查事件处理程序以查看事件是来自鼠标还是来自Canvas宽度更改。