我有一个相当标准的TabControl(没有controltemplates)。如果只有一个选项卡,则会使用以下触发器隐藏选项卡:
<TabControl.ItemContainerStyle>
<Style TargetType="{x:Type TabItem}">
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type TabControl}}, Path=Items.Count}" Value="1">
<Setter Property="Visibility" Value="Collapsed"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TabControl.ItemContainerStyle>
使用以下触发器删除TabControl的边框:
<TabControl.Style>
<Style TargetType="TabControl">
<Setter Property="Margin" Value="0,5,0,0"/>
<Setter Property="BorderThickness" Value="0,1,0,0"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Items.Count, RelativeSource={RelativeSource Self}}" Value="1">
<Setter Property="BorderThickness" Value="0,0,0,0"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TabControl.Style>
除了一件事之外,这很有效。 TabItems消失了,边界也消失了。但是,ContentPresenter周围仍然有一个浅灰色边框(大约2px宽)(见截图)。我尝试了各种解决方案(控制模板修改),但我们已经找到了各种其他问题。我如何摆脱这个边界?
答案 0 :(得分:0)
边框正好是TabControl
的边框。您还可以为TabControl添加样式触发器以删除边框(通过将BorderThickness
设置为0
):
<TabControl.Style>
<Style TargetType="TabControl">
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Self},
Path=Items.Count}" Value="1">
<Setter Property="BorderThickness" Value="0"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TabControl.Style>