簡體   English   中英

WPF:從Scrollviewer獲取滾動條上的事件

[英]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 為此,請使用ScrollViewerScrollChanged事件。 在事件處理程序中,您將擁有sendere參數。 要訪問ScrollViewer屬性,只需將senderScrollViewer如下所示:

ScrollViewer currentViewer = (ScrollViewer)sender;

那應該允許您訪問有關ScrollViewer所有信息。

如果在觸發ScrollChanged事件時Canvas的寬度有問題,請在事件處理程序中進行檢查,以查看事件是來自鼠標還是來自Canvas寬度變化。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM