gpt4 book ai didi

WPF:当 tabItems 居中时,更改 TabControl 选项卡背后的背景

转载 作者:太空狗 更新时间:2023-10-29 18:27:05 31 4
gpt4 key购买 nike

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

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>

帮忙吗?

最佳答案

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

DefaultTemplate for TabControl

TabPanel 本身在设置为除拉伸(stretch)之外的其他内容时不会填充超过它在网格中需要的内容。这就是背景没有显示的原因。

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

希望您能通过查看默认模板了解我的意思。

下面是它实际工作的代码

<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>

它应该是这样的 enter image description here

关于WPF:当 tabItems 居中时,更改 TabControl 选项卡背后的背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19864054/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com