Il modo migliore che ho utilizzato finora è utilizzare la classe VisualTreeHelper
per trovare l'oggetto ScrollViewer
corretto (griglia o nessuna griglia). L'ho usato in diversi progetti.
Prova questa se qualcuno di voi ne ha bisogno:
private static bool ScrollToOffset(DependencyObject n, double offset)
{
bool terminate = false;
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(n); i++)
{
var child = VisualTreeHelper.GetChild(n, i);
if (child is ScrollViewer)
{
(child as ScrollViewer).ScrollToVerticalOffset(offset);
return true;
}
}
if (!terminate)
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(n); i++)
terminate = ScrollToOffset(VisualTreeHelper.GetChild(n, i), offset);
return false;
}
Nota: Io di solito uso classi ListBox e passerei direttamente a questa funzione.
Buona programmazione :)
fonte
2014-01-26 05:45:10
Grazie per la rapida risposta! Questo era esattamente quello che stavo cercando, l'ho già implementato e funzionante :) – stevosaurus