Как автоматически расширить элемент управления вкладкой при добавлении к нему элементов без создания полосы прокрутки? - PullRequest
3 голосов
/ 28 октября 2008

Я использую пользовательский элемент управления WPF (элемент управления вкладками) для динамического добавления элементов вкладки в упрощенном коде ниже:

....
foreach (string id in ids)
{
    TabControl.Items.Add(CreateTabItem(id));
}

private TabItem CreateTabItem(string name)
{
    StackPanel txtBlock = new TextBlock();
    txtblock.Text = name;
    txtBlock.HorizontalAlignment = Horizontalalignment.Center;
    panel.Children.Add(txtBlock);

    TabItem item = new TabItem();
    item.Header = panel;

    <SomeControl> control = new <SomeControl>();
    item.Content = control;
    return item;
 }

В файле xaml я указал следующее, чтобы поместить все мои вкладки в левый столбец:

MinWidth="100" MinHeight="300" TabStripPlacement="Left"

Как сделать так, чтобы мой элемент управления вкладками автоматически увеличивал (то есть растягивал) его высоту, чтобы отображались все элементы вкладок по мере их добавления? Сейчас мне нужно вручную увеличить высоту окна дисплея, чтобы увидеть все элементы вкладки. Мы очень ценим ваши идеи / советы.

PS: если вы знаете, как заставить отображаться вертикальную полосу прокрутки (без добавления полосы прокрутки к моему элементу управления), как только элементы вкладок превышают высоту окна, я могу согласиться с этим, если нет ответов на мои первоначальные намерения .

1 Ответ

1 голос
/ 28 октября 2008

<ScrollViewer>
    <TabControl
        TabStripPlacement="Left"
        x:Name="Tab"
    >
    </TabControl>
</ScrollViewer>

возвращает вам полосу прокрутки, которая будет включена при необходимости.

...