Нет способа сделать это, используя элемент ListView
. Вместо этого вам необходимо получить доступ к его ScrollViewer
, а затем вы можете использовать ScrollViewer.ScrollToVerticalOffset
Method, чтобы установить вертикальное положение ScrollViewer
. Вам также необходимо будет использовать ScrollViewer.VerticalOffset
, ScrollViewer.VerticalOffset
, ScrollViewer.ViewportHeight
и ScrollViewer.ExtentHeight
свойства, чтобы узнать, где вы находитесь: ScrollViewer
.
С ScrollViewer
Class страницы на MSDN:
Область, которая включает в себя все содержание ScrollViewer является степень. Видимой областью содержимого является область просмотра.
Наконец, как вы получаете ScrollViewer
от ListView
? Я не могу гарантировать, что это будет работать на ListView
, но это делается на ListBox
. Вы можете использовать VisualTreeHelper.GetChild
Method вникать в визуальном дереве ListView
и он должен содержать Border
и затем ScrollViewer
, так что вы должны быть в состоянии сделать что-то вроде этого:
Border border = (Border)VisualTreeHelper.GetChild(YourListView, 0);
ScrollViewer scrollViewer = VisualTreeHelper.GetChild(border, 0) as ScrollViewer;
if (scrollViewer != null)
{
scrollViewer.ScrollToVerticalOffset(60.0);
}
Если вы сделать получите ошибку с тем, что возвращает метод GetChild
, его можно будет легко отрегулировать, отлаживая его. Просто поставьте точку останова и посмотрите, что такое тип каждого дочернего элемента, и добавьте еще одну строку с одним из этих элементов ... в конце концов, он должен найти ScrollViewer
. Однако, я думаю, что этот код должен быть в порядке.
Очень углубленные ответ, я буду взгляд на класс Scrollviewer, почти знал, что это должно быть ... Спасибо за этот замечательный ответ! :) – Tokfrans