我正在以编程方式向特定菜单添加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);
}
有什么建议我要去哪里吗?