Windows phone 7 如何在wp7的列表框中居中选择编辑项?

Windows phone 7 如何在wp7的列表框中居中选择编辑项?,windows-phone-7,listbox,windows-phone-7.1,Windows Phone 7,Listbox,Windows Phone 7.1,我使用listbox.ScrollIntoView(项目),但只要该项目在listbox视图中,它就不会滚动。 实际上,我希望该项在列表框的视图中居中。有没有办法做到这一点?不幸的是,这并不是那么容易,这取决于您的列表框是否虚拟化,这取决于它用来呈现其内容的面板。对于非虚拟化列表框,可以通过调用作为列表框模板一部分的ScrollViewer上的以下方法来设置垂直滚动位置,其中偏移量以像素为单位 ScrollViewer.ScrollToVerticalOffset(offset); 对于虚拟化

我使用listbox.ScrollIntoView(项目),但只要该项目在listbox视图中,它就不会滚动。
实际上,我希望该项在列表框的视图中居中。有没有办法做到这一点?

不幸的是,这并不是那么容易,这取决于您的列表框是否虚拟化,这取决于它用来呈现其内容的面板。对于非虚拟化列表框,可以通过调用作为列表框模板一部分的ScrollViewer上的以下方法来设置垂直滚动位置,其中偏移量以像素为单位

ScrollViewer.ScrollToVerticalOffset(offset);
对于虚拟化,您可以在VirtualzingStackPanel上调用以下方法,其中offset是列表位置(您可以使用双倍值,即滚动到3.5将滚动到索引3和4之间的一半):

有关如何在上下文中使用此代码,请查看我在此处实现的跳转列表控件:

ItemsHostStackPanel.SetVerticalOffset(offset);