Можно ли выравнивать заголовки слева в WPF TabControl?
прямо сейчас у меня есть окно WPF, которое выглядит так:
Я хотел бы, чтобы это выглядело так (Photoshop doctored image):
возможно ли это без полной переделки the ControlTemplate?
Я пытался возиться с HorizontalAlignment, HorizontalContentAlignment, etc. но ничего из того, что я пробовал, не давало желаемого эффекта.
Edit:
если я попробую это решение (предложенное T Levesque)...
<TabControl...>
    <TabControl.ItemContainerStyle>
        <Style TargetType="{x:Type TabItem}">
            <Setter Property="HorizontalAlignment" Value="Left"/>
        </Style>
    </TabControl.ItemContainerStyle>
    ...
</TabControl>
...Я понимаю:
что близко, но в итоге это выглядит как гистограмма.
Edit 2:
для записи, я закончил тем, что объединил ответы Р. Копси и т. Левеска, чтобы прийти к этому:
<TabControl
    Margin="0,5,0,0"
    HorizontalContentAlignment="Left"
    TabStripPlacement="Left">
    <TabControl.ItemContainerStyle>
        <Style
            TargetType="TabItem">
            <Setter
                Property="HorizontalAlignment"
                Value="Stretch" />
            <Setter
                Property="HorizontalContentAlignment"
                Value="Stretch" />
        </Style>
    </TabControl.ItemContainerStyle>
    <TabItem
        Header="Perform System Administration">
        ...
    <TabItem
        Header="Perform Setup Tasks">
        ...
            4 ответов
следующее даст вам взгляд, который вы ищете.
    <TabControl TabStripPlacement="Left" HorizontalContentAlignment="Left" >
        <TabItem HorizontalAlignment="Stretch" HorizontalContentAlignment="Stretch" Header="Header 1">
            <TabItem.Content>Test</TabItem.Content>
        </TabItem>
        <TabItem HorizontalAlignment="Stretch" HorizontalContentAlignment="Stretch" Header="Header 2"  >
            <TabItem.Content>Test</TabItem.Content>
        </TabItem>
        <TabItem HorizontalAlignment="Stretch" HorizontalContentAlignment="Stretch" Header="Header Longer Version">
            <TabItem.Content>Test</TabItem.Content>
        </TabItem>
    </TabControl>
какой элемент управления вы используете для TabItem.Свойство заголовка? Если вы просто используете метку, вы указываете ширину метки на какое-то общее значение? Если метка имеет размер содержимого, она будет отображаться так, как вы показали. Попробуйте следующее с общей шириной для меток, используемых для отображения текста заголовка:
<TabControl TabStripPlacement="Left" >
    <TabItem>
        <TabItem.Header>
            <Label Width="100">test tab 1</Label>
        </TabItem.Header>
        <TabItem.Content>
            xyz
        </TabItem.Content>
    </TabItem>
    <TabItem>
        <TabItem.Header>
            <Label Width="100">test t2</Label>
        </TabItem.Header>
        <TabItem.Content>
            abc
        </TabItem.Content>
    </TabItem>
    <TabItem>
        <TabItem.Header>
            <Label Width="100">test tab three</Label>
        </TabItem.Header>
        <TabItem.Content>
            abc
        </TabItem.Content>
    </TabItem>
</TabControl>
вы можете определить горизонтальное выравнивание для всех заголовков вкладок:
<TabControl...>
    <TabControl.ItemContainerStyle>
        <Style TargetType="{x:Type TabItem}">
            <Setter Property="HorizontalAlignment" Value="Left"/>
        </Style>
    </TabControl.ItemContainerStyle>
    ...
</TabControl>
простое добавление атрибута HorizontalContentAlignment= "Left" в TabControl выровняет заголовки вкладок слева.
<TabControl
Margin="0,5,0,0"
HorizontalContentAlignment="Left"
TabStripPlacement="Left">
<TabItem
    Header="Perform System Administration">
    ...
<TabItem
    Header="Perform Setup Tasks">
    ...