我有一个相当标准的TabControl (没有控件模板)。如果只有一个选项卡,则使用以下触发器隐藏该选项卡:
<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宽)(见截图)。我尝试了我找到的各种解决方案(控件模板修改),但它们都导致了各种其他问题。我如何摆脱这个边框?

发布于 2014-09-17 22:42:48
边框就是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>https://stackoverflow.com/questions/25893384
复制相似问题