隐藏tabitems和边框时的灰色边框

时间:2014-09-17 14:30:37

标签: wpf wpf-controls tabcontrol

我有一个相当标准的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宽)(见截图)。我尝试了各种解决方案(控制模板修改),但我们已经找到了各种其他问题。我如何摆脱这个边界?

Example

1 个答案:

答案 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>