WPF:仅对直接子项设置样式

oll*_*ant 5 wpf

在我的应用程序中,我有一个选项卡控件,其中包含多个选项卡项。问题是我想将样式应用于这些选项卡项,但不应用于其他(嵌套)选项卡项。

我尝试在选项卡控件上设置以下样式,但这也会影响所有子项:

<Style x:Key="tabControlStyle" TargetType="{x:Type TabControl}">
     <Setter Property="TabItem.Template" Value="{StaticResource tabItemTemplate}" /> 
</Style>
Run Code Online (Sandbox Code Playgroud)

通过使用上面的代码,我得到以下错误:“TabItem”ControlTemplate TargetType 与模板化类型“TabControl”不匹配,因为 TabItem 和 TabControl 具有相同的 DependencyProperty“Template”,并且代码尝试将 TabItemTemplate 设置为 TabControlTemplate。

有谁能够帮助我?

Jul*_*ain 3

使用该ItemContainerStyle属性将样式应用于项目控件的项目:

<Style x:Key="tabControlStyle" TargetType="{x:Type TabControl}">
     <Setter Property="ItemContainerStyle" Value="{x:StaticResource tabItemStyle}" /> 
</Style>
Run Code Online (Sandbox Code Playgroud)

  • 是的,但是如果我不想在 20 个控件上设置相同的样式怎么办? (7认同)
  • 这可能适用于这种情况,但我有类似的用法,其中父项不是 ItemControl。在这些情况下我能做什么? (2认同)