私はいくつかのTabItemを持つTabControlを持っています。私はそれらをもっとフラットなデザインにしようとしています。その考え方は、タブの外側の境界線を消し、アクティブなタブをタブの下に緑色の線で示します。私は緑色の線を完全に動作させることができましたが、私が何をしても、各TabItemの左上、上端、右の線を取り除くことはできません。WPF TabItemボーダーがBorderThicknessプロパティーを反映していない
私の仕様にはテキストの書式設定の制約があるため、TabItemヘッダーがBorderで囲まれたTextBlockに折り返されています。私はこのコンビネーションがそれと関係していると思う。アクティブなタブに緑色の下の枠線を表示する方法がある場合、改行を許可しながら(各タブは2つの行に分割する必要があります)、タブのヘッダーにテキストを配置すると、私は構成。私は、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>