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