WPF устанавливает правильную высоту для Scrollviewer в MenuItem - PullRequest
0 голосов
/ 22 мая 2019

Я пытаюсь добавить ScrollViewer в MenuItem, который содержит много элементов, но это доставляет мне некоторые проблемы с высотой в том смысле, что оно кажется фиксированным и показывает только один из элементов и часть полосы прокрутки.

Поскольку элемент MenuItem создается, а затем передается некоему устаревшему коду, который создает само меню, я подозревал, что это может быть какой-то стиль, применяемый в другом месте, но также обнуление стиля для всех используемых элементов не работает.

Это минимальный прототип кода, который я использую.Примите во внимание, что это работает, как и ожидалось, в отдельном тестовом проекте, единственное отличие состоит в том, что в официальном коде я передаю MenuItem в наследство.

        var items = new[] {"one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten"};

        var newSubMenu = new MenuItem { Header = "New Sub Menu", Style = null };

        var scrollViewer = new ScrollViewer
        {
            VerticalScrollBarVisibility = ScrollBarVisibility.Visible,
            Height = 100
        };
        newSubMenu.Items.Add(scrollViewer);

        var stackPanel = new StackPanel();
        scrollViewer.Content = stackPanel;

        foreach (var item in items)
        {
            var subIt = new MenuItem {Header = item};
            stackPanel.Children.Add(subIt);
        }

        RootMenu.Items.Add(newSubMenu);
...