gpt4 book ai didi

c# - 通过 TabControl 继承属性

转载 作者:行者123 更新时间:2023-11-30 22:05:48 26 4
gpt4 key购买 nike

我有一个窗口,我在其中设置了一些属性

<Window Foreground="White" ...

现在我所有的 child 都能继承属性(property),对吧?像这样

<Window>
<Grid>
<Label> <-- has Foreground="White" without need to explicitly specify it -->
...

但是,一旦我使用 TabControl,继承就被打破了。

<Window>
<Grid>
<TabControl>
<TabItem>
<Grid>
<Label> <-- doesn't inherit Foreground property from Window -->

我无法为TabControl设置Foreground,可能是这个原因。问题是为什么和做什么?我可以使用样式,但还有其他更明显且更少代码式的方式吗?

最佳答案

在这种情况下,您真的无能为力。属性值继承肯定止于TabControl。我怀疑它与 TabItem 提供的所有不同的 TemplateStyle 有关(尽管这不应该导致真的有什么问题)。

如您所说,在 TabControl 中设置多个控件的 Foreground 属性的唯一方法是使用 Style。但是, 有一种方法可以在没有自己的 Foreground 属性的控件上设置 Foreground 属性。那就是使用 TextElement.Foreground 附加属性:

<Grid TextElement.Foreground="Red">
<StackPanel>
<TextBlock Text="Hey what colour am I?" />
<TabControl>
<TabItem Header="Header" TextElement.Foreground="Red" />
</TabControl>
</StackPanel>
</Grid>

当然,TabItem 控件确实有一个Foreground 属性,所以这不是一个很好的例子……它在充满 TextBlockGrid。不过您应该注意,设置 TextElement.Foreground 附加属性不会对其中没有 TextElement 的控件产生任何影响。 (TextBlock 控件包含 TextElement)。您也可以调用 TextBlock.Foreground

关于c# - 通过 TabControl 继承属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24136049/

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