我有一個TabControl與幾個TabItems。我試圖讓他們有一個平坦的設計。這個想法是讓選項卡的外部邊界消失,選項卡底部的綠色線顯示活動選項卡。我已經能夠使綠線完美工作,但無論我做什麼,我都無法擺脫每個TabItem的左邊,上邊和右邊線。WPF TabItem邊框不反映BorderThickness屬性
由於我的規範中的文本格式約束,我已經將TabItem頭包裝到由邊框包裝的TextBlock中。我懷疑這個組合可能與它有關。如果有一種方法可以在活動標籤上顯示綠色底部邊框,同時允許換行符(每個標籤有兩個單詞需要分成兩行)和文本居中在標籤標題中,我完全可以更改我的組態。我嘗試過BorderThickness,Margin和Padding屬性的各種組合,但無濟於事。
<TabControl HorizontalAlignment="Stretch" VerticalContentAlignment="Stretch" x:Name="tabControl">
<TabItem MaxWidth="55" HorizontalAlignment="Center" Background="White">
<TabItem.Header>
<Border Style="{StaticResource TabItemText}">
<TextBlock TextAlignment="Center" Text="Actions Needed" TextWrapping="Wrap"></TextBlock>
</Border>
</TabItem.Header>
</TabItem>
</TabControl>
這是標籤着色代碼。它目前做了一些冗餘的事情,但它說明了我想要做的事情。
<Style x:Key="TabItemText" TargetType="{x:Type Border}">
<Style.Triggers>
<DataTrigger Binding="{Binding IsSelected, RelativeSource={RelativeSource AncestorType=TabItem}}" Value="True">
<Setter Property="BorderBrush" Value="#57B481"/>
<Setter Property="BorderThickness" Value="0 0 0 4"/>
<Setter Property="Margin" Value="0 0 0 -3"/>
</DataTrigger>
<DataTrigger Binding="{Binding IsSelected, RelativeSource={RelativeSource AncestorType=TabItem}}" Value="False">
<Setter Property="BorderThickness" Value="0 0 0 0"/>
<Setter Property="Margin" Value="0 0 0 -3"/>
</DataTrigger>
</Style.Triggers>
</Style>