因此,我希望标签中的标签项水平居中。我也想更改标签后面的背景。我为这两件事找到了答案:
我的问题是,它们各自都可以很好地工作,但是结合起来,它们就无法工作。tabItem居中对齐,但背景颜色不是我指定的颜色。
例如代码:
<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使用的默认模板。
如果将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>
这就是它的样子
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句