Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 获取ListView的垂直滚动条位置_C#_Wpf_Wpf Controls - Fatal编程技术网

C# 获取ListView的垂直滚动条位置

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

我有一个WPF应用程序,每次用户滚动时都需要从顶部获取垂直滚动条的变化。这是我的XAML:


请注意,
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()
稍后将用户返回到该位置。

这并不简单和直接,但我认为这可能会做到:这并不简单和直接,但我认为这可能会做到: