如何在wp7的列表框中居中选择的项目?

时间:2011-12-30 07:27:21

标签: windows-phone-7 listbox windows-phone-7.1

我使用listbox.ScrollIntoView(item),但只要此项目在列表框视图中,它就不会滚动。 实际上我希望项目在列表框的视图中居中。反正有吗?

1 个答案:

答案 0 :(得分:2)

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

ScrollViewer.ScrollToVerticalOffset(offset);

对于虚拟化,您可以在VirtualizingStackPanel上调用以下方法,其中offset是列表位置(您可以使用double值,即滚动到3.5将滚动到索引3和4之间的中间位置):

ItemsHostStackPanel.SetVerticalOffset(offset);

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

http://wp7contrib.codeplex.com/SourceControl/changeset/view/72741#1502048