Установить положение прокрутки в подменю MenuItem
Я программно добавляю, скажем, 50 пунктов меню к определенному меню, эти элементы относятся к объектам, которые вы можете выбрать на экране. Если вы выбираете объект, он подсвечивает, какой элемент выделен, но я не могу получить меню для прокрутки до этого конкретного объекта.
В настоящее время я добавляю ScrollViewer в главное меню, затем StackPanel для этого ScrollView. Я не на 100%, если это правильный метод.
MenuItem m = new MenuItem();
ScrollViewer scroll = new ScrollViewer();
m.Header = scroll;
_parentMenu.Items.Add(m);
StackPanel sp = new StackPanel();
scroll.Content = sp;
MenuItem dummy = new MenuItem();
dummy.Header = "AAAA";
sp.Children.Add(dummy);
sp.Children.Add(dummy);
sp.Children.Add(dummy);
sp.Children.Add(dummy);
sp.Children.Add(dummy);
sp.Children.Add(dummy);
sp.Children.Add(dummy);
Позже я использую этот код для прокрутки до позиции, которая не работает. Позиция прокрутки 100 предназначена только для тестирования.
private void ContextMenu_SubmenuLoaded(object sender, RoutedEventArgs e)
{
MenuItem owner = (MenuItem)sender;
ScrollViewer s = ((MenuItem)owner.Items[0]).Header as ScrollViewer;
s.ScrollToVerticalOffset(100);
}
Любые предложения, где я иду не так?