在MenuItem子菜单中设置滚动位置

时间:2018-07-05 06:37:51

标签: c# wpf menu-items

我正在以编程方式向特定菜单添加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);
    }

有什么建议我要去哪里吗?

0 个答案:

没有答案