代码之家  ›  专栏  ›  技术社区  ›  driis

WP7:列表框滚动到顶部?

  •  0
  • driis  · 技术社区  · 14 年前

    在WindowsPhone7Silverlight应用程序中,我有一个列表框,其中有很多项是从外部数据源动态生成的。其中一个项目将是“当前的”,所以我希望以编程方式滚动列表框,使该项目显示为列表框中最顶部的可见项目-因此用户不必这样做。

    listBox.ScrollIntoView(itemOfInterest);
    

    但那只会滚动太多,以至于 itemOfInterest 在列表框的底部。

    如何以编程方式滚动列表框,使特定项显示在视口的顶部?

    3 回复  |  直到 14 年前
        1
  •  5
  •   Mick N    14 年前

    这也可以通过滚动到最后一项,然后滚动到当前项,以相当直接的方式完成;

            FirstListBox.ScrollIntoView(FirstListBox.Items[lastItemIndex]);
            FirstListBox.ScrollIntoView(FirstListBox.Items[currentItemIndex]);
    
        2
  •  2
  •   Michael Goldshteyn    14 年前

    如果知道列表框中可见的项目数,可以通过滚动到项目所在位置的视图中,再加上列表框中包含的项目数,计算偏移量,使项目显示在顶部而不是底部:

    int itemToView=itemOfInterest+numItemsDisplayed;
    

        3
  •  0
  •   Teoman shipahi    11 年前
    listboxNews.ScrollIntoView(listboxNews.Items.First());