C# 获取ListView的垂直滚动条位置
我有一个WPF应用程序,每次用户滚动时都需要从顶部获取垂直滚动条的变化。这是我的XAML:C# 获取ListView的垂直滚动条位置,c#,wpf,wpf-controls,C#,Wpf,Wpf Controls,我有一个WPF应用程序,每次用户滚动时都需要从顶部获取垂直滚动条的变化。这是我的XAML: 请注意,wpfControls使用以下内容:xmlns:wpfControls=“clr名称空间:Digimezzo.wpfControls;assembly=Digimezzo.wpfControls” 以下是背后的代码: public MainWindow() { InitializeComponent(); listViewScrollViewer = FindScrollVie
请注意,wpfControls
使用以下内容:xmlns:wpfControls=“clr名称空间:Digimezzo.wpfControls;assembly=Digimezzo.wpfControls”
以下是背后的代码:
public MainWindow()
{
InitializeComponent();
listViewScrollViewer = FindScrollViewer(ImageListView);
scrollVerticalPosition = 0;
}
private ScrollViewer listViewScrollViewer;
private double scrollVerticalPosition;
private void listBox_ScrollChanged(object sender, ScrollChangedEventArgs e)
{
scrollVerticalPosition = e.VerticalChange;
}
// From https://stackoverflow.com/a/21443193/177416
private ScrollViewer FindScrollViewer(DependencyObject d)
{
if (d is ScrollViewer)
return d as ScrollViewer;
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(d); i++)
{
var sw = FindScrollViewer(VisualTreeHelper.GetChild(d, i));
if (sw != null) return sw;
}
return null;
}
public主窗口()
{
初始化组件();
listViewScrollViewer=FindScrollViewer(ImageListView);
滚动垂直位置=0;
}
私有滚动查看器listViewScrollViewer;
私人双涡卷垂直位置;
私有无效列表框\u ScrollChanged(对象发送方,ScrollChangedEventArgs e)
{
scrollVerticalPosition=e.垂直变化;
}
//从https://stackoverflow.com/a/21443193/177416
私有ScrollViewer FindScrollViewer(DependencyObject d)
{
如果(d是ScrollViewer)
以ScrollViewer返回d;
for(int i=0;i
我需要从
listBox\u ScrollChanged()
中读取e
的哪些内容才能从顶部获得垂直变化?然后我将使用ScrollToVerticalOffset()
稍后将用户返回到该位置。这并不简单和直接,但我认为这可能会做到:这并不简单和直接,但我认为这可能会做到: