WPF:如何水平滚动ListView控件?

WPF:如何水平滚动ListView控件?,wpf,listview,Wpf,Listview,我需要手动将ListView控件的内容滚动到左侧 当我调用scrollIntoView时,它会自动调用,但仅当要滚动到的项目不可见时才会调用。ListView将滚动至项目,并水平滚动至左侧。就像我需要的那样 但是,如果要滚动到的项目已经可见,则不会发生任何事情,这就是我需要手动向左滚动的原因。您可以通过遍历可视化树找到列表视图的滚动查看器,然后调用ScrollToLeftEnd。像这样的东西应该有用 private void ScrollListViewToLeft(ListView listV

我需要手动将ListView控件的内容滚动到左侧

当我调用scrollIntoView时,它会自动调用,但仅当要滚动到的项目不可见时才会调用。ListView将滚动至项目,并水平滚动至左侧。就像我需要的那样


但是,如果要滚动到的项目已经可见,则不会发生任何事情,这就是我需要手动向左滚动的原因。

您可以通过遍历可视化树找到
列表视图的
滚动查看器
,然后调用
ScrollToLeftEnd
。像这样的东西应该有用

private void ScrollListViewToLeft(ListView listView)
{
    ScrollViewer listViewScrollViewer = GetVisualChild<ScrollViewer>(listView);
    listViewScrollViewer.ScrollToLeftEnd();
}
private static T GetVisualChild<T>(DependencyObject parent) where T : Visual
{
    T child = default(T);
    int numVisuals = VisualTreeHelper.GetChildrenCount(parent);
    for (int i = 0; i < numVisuals; i++)
    {
        Visual v = (Visual)VisualTreeHelper.GetChild(parent, i);
        child = v as T;
        if (child == null)
        {
            child = GetVisualChild<T>(v);
        }
        if (child != null)
        {
            break;
        }
    }
    return child;
}
private void ScrollListViewToLeft(ListView ListView)
{
ScrollViewer listViewScrollViewer=GetVisualChild(listView);
listViewScrollViewer.ScrollToLeftEnd();
}
私有静态T GetVisualChild(DependencyObject父对象),其中T:Visual
{
T child=默认值(T);
int numVisuals=VisualTreeHelper.GetChildrenCount(父级);
对于(int i=0;i
如果项目已经可见,autoscroll将显示什么?