当我按照其他SO答案提供的步骤来设置标签项标题的样式时,我会遇到一些奇怪的行为。 与
<Style TargetType="{x:Type TabItem}">
<Setter Property="HeaderTemplate">
<Setter.Value>
<DataTemplate DataType="{x:Type TabItem}">
<buttons:MyButtonControl Content="{TemplateBinding Content}" />
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
选项卡控件如下
<TabControl>
<TabItem Header="Buttons">
<local:Buttons />
</TabItem>
<TabItem Header="Labels">
<local:Labels />
</TabItem>
</TabControl>
我得到一个看起来像这样的标签控件
如何将样式应用于所有标签页?如何删除数据模板周围的默认选项卡标题样式?
修改
如果我设置模板的样式而不是标题模板,则内容会停止显示,但至少边框会在有效的标题上消失。
<Style TargetType="{x:Type TabItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabItem}">
<buttons:MyButtonControl Content="{TemplateBinding Content}" />
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
答案 0 :(得分:1)
缺少的部分似乎是ContentPresenter
,ContentSource
属性设置为标题。
(同样使用标题中的按钮可防止单击该标签,因为该按钮会触发单击事件。)
此代码显示正确。
<Style TargetType="TabItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabItem}">
<Border>
<ContentPresenter ContentSource="Header">
<ContentPresenter.ContentTemplate>
<DataTemplate>
<TextBlock Text="{TemplateBinding Content}" />
</DataTemplate>
</ContentPresenter.ContentTemplate>
</ContentPresenter>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>