【问题标题】:how can I scroll listbox inside scrollviewer using mouse wheel如何使用鼠标滚轮在scrollviewer中滚动列表框
【发布时间】:2015-02-23 08:52:14
【问题描述】:

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();
            }
        }
    }

现在鼠标滚轮事件滚动查看器正在滚动,如果我的鼠标经过列表框。我想要:如果我的鼠标经过 ListBox 并停留一段时间(可能是 1 或 2 秒),滚动应该移动到 ListBox。如果鼠标没有停留在 ListBox 上一段时间(1 或 2 秒),则滚动不应移动到 ListBox。 ScrollViewer 中可能有多个 ListBox。

【问题讨论】:

    标签: c# wpf xaml scrollviewer mousewheel


    【解决方案1】:

    将其添加到您的列表框:

    ScrollViewer.CanContentScroll="True"

    【讨论】:

    • ListBox 滚动无法使用鼠标滚轮,即使它获得了焦点
    猜你喜欢
    • 2013-04-20
    • 1970-01-01
    • 1970-01-01
    • 2013-04-06
    • 2021-03-18
    • 2012-12-30
    • 1970-01-01
    • 2011-09-18
    • 1970-01-01
    相关资源
    最近更新 更多