Как центрировать выбранный элемент в списке в wp7? - PullRequest
1 голос
/ 30 декабря 2011

Я использую listbox.ScrollIntoView (item), но пока этот элемент находится в представлении listbox, он не будет прокручиваться.На самом деле я хочу, чтобы элемент был в центре списка.Есть ли в любом случае, чтобы сделать это?

1 Ответ

2 голосов
/ 30 декабря 2011

К сожалению, это не так просто, это зависит от того, виртуализирован ли ваш список или нет, который зависит от панели, которую он использует для визуализации своего содержимого. Для не виртуализирующегося списка можно установить положение вертикальной прокрутки, вызвав следующий метод в ScrollViewer, который является частью шаблона списка, где смещение указывается в пикселях.

ScrollViewer.ScrollToVerticalOffset(offset);

Для виртуализации вы можете вызвать следующий метод в VirtualizingStackPanel, где смещение - это местоположение списка (вы можете использовать двойное значение, то есть при прокрутке до 3,5 будет прокручиваться половина между индексами 3 и 4):

ItemsHostStackPanel.SetVerticalOffset(offset);

Чтобы узнать, как использовать этот код в контексте, посмотрите на элемент управления списком переходов, который я реализовал здесь:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...