Вы можете получить ScrollViewer в ListBox и использовать его ScrollToVerticalOffset-method. Чтобы получить ScrollViewer, вы можете, например, подключить к ListBox нагружал-события, как следующее:
XAML:
<ListBox Loaded="HookScrollViewer">
code- за:
private void HookScrollViewer(object sender, RoutedEventArgs e)
{
var element = (FrameworkElement)sender;
var scrollViewer = ControlHelpers.FindChildOfType<ScrollViewer>(element);
if (scrollViewer == null)
return;
this.myScrollViewer = scrollViewer;
}
ControlHerlpers.FindChildOfType-метод реализации так:
public static T FindChildOfType<T>(DependencyObject root) where T : class
{
var queue = new Queue<DependencyObject>();
queue.Enqueue(root);
while (queue.Count > 0)
{
var current = queue.Dequeue();
for (int i = VisualTreeHelper.GetChildrenCount(current) - 1; 0 <= i; i--)
{
var child = VisualTreeHelper.GetChild(current, i);
var typedChild = child as T;
if (typedChild != null)
{
return typedChild;
}
queue.Enqueue(child);
}
}
return null;
}
Теперь у вас есть ScrollViewer ListBox в члене myScrollViewer, и вы можете напрямую обращаться к его методам. Например, для прокрутки дна можно назвать:
this.myScrollViewer.ScrollToVerticalOffset(double.MaxValue);
Он отлично работает, если я не установить много времени смещение ... –
привет Майкл может вы возможно мне помочь? У меня есть 2 списка на одной странице, и данные смешиваются, как я могу получить второй список с использованием вышеуказанного кода? – Bohrend
он работает превосходно ..... – URAndroid