【问题标题】:WPF: Changing background behind tabs for TabControl when tabItems are centeredWPF:当 tabItems 居中时更改 TabControl 选项卡后面的背景
【发布时间】:2013-11-08 16:33:17
【问题描述】:

所以,我希望标签中的标签项水平居中。我还想更改选项卡后面的背景。我找到了这两件事的答案:

This one explains exactly what I want to do for the background and gives a solution

This one explains how to center the tabItems

我遇到的问题是它们都单独工作得很好,但是当它们结合起来时,它们就不起作用了。 tabItems 居中很好,但背景颜色不是我指定的颜色。

例如代码:

<TabControl>
    <TabControl.Resources>
        <Style TargetType="{x:Type TabPanel}">
            <Setter Property="HorizontalAlignment" Value="Center" />
            <Setter Property="Background" Value="Red" />
        </Style>
    </TabControl.Resources>

    <TabItem Header="Test 1" />
    <TabItem Header="Test 2" />
    <TabItem Header="Test 3" />
    <TabItem Header="Test 4" />
</TabControl>

帮助?

【问题讨论】:

    标签: c# wpf tabcontrol


    【解决方案1】:

    天哪,发现问题真是一场噩梦。问题在于 tabcontrol 使用的默认模板。

    DefaultTemplate for TabControl

    TabPanel 本身在设置为除了拉伸之外的其他内容时,不会再填满网格中需要的内容。这就是背景没有显示的原因。

    另一个问题是 ContentPanel 的背景是模板绑定到 TabControl 的背景。因此,在四处挖掘之后,我发现我可以用背景覆盖构成 tabcontrol 的网格的样式,并且它只会填满网格的第一行,因为第二行背景是模板绑定的。

    希望这是有道理的,您应该能够通过查看默认模板来了解我所了解的内容。

    这是它工作的实际代码

    <TabControl>
        <TabControl.Resources>
            <Style TargetType="{x:Type Grid}">
                <Setter Property="Background" Value="Red"/>
            </Style>
            <Style TargetType="{x:Type TabPanel}">
                <Setter Property="HorizontalAlignment" Value="Center"/>
            </Style>
        </TabControl.Resources>
        <TabItem Header="Test 1"/>
        <TabItem Header="Test 2"/>
        <TabItem Header="Test 3"/>
        <TabItem Header="Test 4"/>
    </TabControl>
    

    这就是它的样子

    【讨论】:

    • "TabPanel 本身在设置为除了拉伸之外的其他内容时,不会再填满网格中需要的内容。"这就是我的想法并最终决定将选项卡控件放在网格中并为该网格提供背景,这与您的解决方案类似,但我认为您的解决方案看起来更好,所以我将更改为。谢谢!
    • 您也可以在TabPanel 中通过在样式中添加更多设置器来访问它。将网格的垂直和水平对齐设置为拉伸,例如:Property="Grid.HorizontalAlignment" Value="Stretch"Property="Grid.VertcialAlignment" Value="Stretch",然后设置背景颜色,例如:Property="Grid.Background" Value="&lt;your background color&gt;"
    猜你喜欢
    • 1970-01-01
    • 2016-01-01
    • 2010-12-21
    • 1970-01-01
    • 2011-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多