簡體   English   中英

如何使用鼠標滾輪在scrollviewer中滾動列表框

[英]how can I scroll listbox inside scrollviewer using mouse wheel

XAML:

    <ScrollViewer HorizontalAlignment="Center" PreviewMouseWheel="myScrollViewer_PreviewMouseWheel"  Name="myScrollViewer" VerticalScrollBarVisibility="Disabled" HorizontalScrollBarVisibility="Auto">
            <Grid  Width="1200">
                <ListBox ScrollViewer.VerticalScrollBarVisibility="Visible" MouseMove="listbox_MouseMove" Background="AliceBlue" Height="350" Width="200" HorizontalAlignment="Center" Name="listbox"/>
            </Grid>
    </ScrollViewer>

CS:

    private void myScrollViewer_PreviewMouseWheel(object sender, MouseWheelEventArgs e)
    {
        if (e.Delta < 0) // wheel down
        {
            if (myScrollViewer.HorizontalOffset + e.Delta > 0)
            {
                myScrollViewer.ScrollToHorizontalOffset(myScrollViewer.HorizontalOffset + e.Delta);
            }
            else
            {
                myScrollViewer.ScrollToLeftEnd();
            }
        }
        else //wheel up
        {
            if (myScrollViewer.ExtentWidth > myScrollViewer.HorizontalOffset + e.Delta)
            {
                myScrollViewer.ScrollToHorizontalOffset(myScrollViewer.HorizontalOffset + e.Delta);
            }
            else
            {
                myScrollViewer.ScrollToRightEnd();
            }
        }
    }

現在在鼠標滾輪上,scrollviewer正在滾動,並且如果我的鼠標移過ListBox。 我想要:如果我的鼠標越過ListBox並停留了一段時間(也許1或2秒),則滾動應該移至ListBox。 如果鼠標沒有停留在ListBox上一會(1或2秒),則滾動不應移動到ListBox。 ScrollViewer中可能有多個ListBoxes。

將其添加到您的列表框:

ScrollViewer.CanContentScroll = “真”

暫無
暫無

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

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