![](/img/trans.png)
[英]WPF: How to extract Scrollbar From ScrollViewer programmatically?
[英]WPF: Get an event on the scrollbar from Scrollviewer
僅當用戶向左或向右拖動滾動條時,我才希望獲得一個事件。
當我使用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>
根據我對您的了解,您試圖在用戶向左或向右拖動滾動條時訪問ScrollViewer
。 為此,請使用ScrollViewer
的ScrollChanged
事件。 在事件處理程序中,您將擁有sender
和e
參數。 要訪問ScrollViewer
屬性,只需將sender
為ScrollViewer
如下所示:
ScrollViewer currentViewer = (ScrollViewer)sender;
那應該允許您訪問有關ScrollViewer
所有信息。
如果在觸發ScrollChanged事件時Canvas的寬度有問題,請在事件處理程序中進行檢查,以查看事件是來自鼠標還是來自Canvas寬度變化。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.