WPF - 如何将 onScroll 事件添加到 ListBox 并访问 ScrollViewer
WPF - How to add onScroll Event to ListBox and Access the ScrollViewer
我在 XAML 中这样定义我的 ListBox:
<ListBox Name="myListBox"
HorizontalContentAlignment="Stretch"
ScrollViewer.HorizontalScrollBarVisibility="Hidden"
ScrollViewer.ScrollChanged="OnScrollChanged" <- I want to create onScrollChanged event
Grid.Row="0">
...
</ListBox>
然后在我的cs文件中,我定义了这个事件:
private void OnScrollChanged(object sender, ScrollChangedEventArgs e)
{
var scrollViewer = (ScrollViewer)sender; //ERROR
if (scrollViewer.VerticalOffset == scrollViewer.ScrollableHeight)
MessageBox.Show("This is the end");
}
我正在尝试检测用户何时滚动到列表框的最底部。但是我收到错误消息,无法将 ListBox 转换为 Scrollviewer。如何获取滚动查看器?
谢谢
在 XAML 中的 ListBox
周围添加 ScrollViewer
,然后从那里订阅活动。
<ScrollViewer ScrollChanged="OnScrollChanged">
<ListBox Name="myListBox"
HorizontalContentAlignment="Stretch"
ScrollViewer.HorizontalScrollBarVisibility="Hidden"
Grid.Row="0" />
</ScrollViewer>
代码隐藏可以保持不变。
在您当前的代码中,您试图将 ListBox
("sender")转换为 ScrollViewer
,但它无法做到,因此会抛出异常。
我在 XAML 中这样定义我的 ListBox:
<ListBox Name="myListBox"
HorizontalContentAlignment="Stretch"
ScrollViewer.HorizontalScrollBarVisibility="Hidden"
ScrollViewer.ScrollChanged="OnScrollChanged" <- I want to create onScrollChanged event
Grid.Row="0">
...
</ListBox>
然后在我的cs文件中,我定义了这个事件:
private void OnScrollChanged(object sender, ScrollChangedEventArgs e)
{
var scrollViewer = (ScrollViewer)sender; //ERROR
if (scrollViewer.VerticalOffset == scrollViewer.ScrollableHeight)
MessageBox.Show("This is the end");
}
我正在尝试检测用户何时滚动到列表框的最底部。但是我收到错误消息,无法将 ListBox 转换为 Scrollviewer。如何获取滚动查看器?
谢谢
在 XAML 中的 ListBox
周围添加 ScrollViewer
,然后从那里订阅活动。
<ScrollViewer ScrollChanged="OnScrollChanged">
<ListBox Name="myListBox"
HorizontalContentAlignment="Stretch"
ScrollViewer.HorizontalScrollBarVisibility="Hidden"
Grid.Row="0" />
</ScrollViewer>
代码隐藏可以保持不变。
在您当前的代码中,您试图将 ListBox
("sender")转换为 ScrollViewer
,但它无法做到,因此会抛出异常。