Установить положение прокрутки в подменю 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);
    }

Любые предложения, где я иду не так?

0 ответов

Другие вопросы по тегам