在我的wpf应用程序中,我有一个包含另一个tabcontrol(child)的tabControl(父)。 我想将一个样式应用于父tabControl的tabItem而不影响子窗体。 我试过这个:
<TabControl x:Name="Parent" TabStripPlacement="Left"
ItemsSource="{Binding Path=ParentTabItems, Mode=OneWay}" >
<TabControl.Resources>
<Style TargetType="{x:Type TabItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabItem}">
<!-- template is defined here-->
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="{x:Type TabPanel}">
<Setter Property="VerticalAlignment" Value="Center" />
</Style>
</TabControl.Resources>
<TabControl.ContentTemplate>
<DataTemplate>
<ContentPresenter>
<ContentPresenter.Content>
<!--Here there is the child TabControl-->
</ContentPresenter.Content>
</ContentPresenter>
</DataTemplate>
</TabControl.ContentTemplate>
</TabControl>
但是这会将样式也应用于子tabControl TabItem。 如何将样式仅应用于父tabItem,使用应用程序中定义的默认样式保留子TabControl?
答案 0 :(得分:1)
您应该可以使用TabControl.ItemContainerStyle
在外Style
的{{1}}上设置名为TabItem
的{{1}}。试试这个:
在TabControl
:
Resources
...
<Style x:Key="ItemStyle" TargetType="{x:Type TabItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabItem}">
<!-- template is defined here-->
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>