私はWPFタブコントロールを持っています。タブアイテムのスタイルを変更したいと思います。デフォルトのスタイルは正方形です。私はシェブロンリストのようにする必要があります。それぞれのブロックは六角形である。シェブロンリストとしてWPFタブコントロールを作成するには?
EDIT:
私はWPFタブコントロールを持っています。タブアイテムのスタイルを変更したいと思います。デフォルトのスタイルは正方形です。私はシェブロンリストのようにする必要があります。それぞれのブロックは六角形である。シェブロンリストとしてWPFタブコントロールを作成するには?
EDIT:
はここKaxamlで作られた簡単な例です:
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Page.Resources>
<Style x:Key="chevronTabItemStyle" TargetType="{x:Type TabItem}">
<Setter Property="Foreground" Value="White" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabItem}">
<StackPanel Orientation="Horizontal" Margin="0,0,-7,0" Height="30">
<Path Data="M0,0 10,0 10,30 0,30 10,15"
Fill="{TemplateBinding Background}"/>
<Grid>
<Rectangle Fill="{TemplateBinding Background}" />
<TextBlock Text="{TemplateBinding Header}" Margin="10,5" VerticalAlignment="Center" />
</Grid>
<Path Data="M0,0 10,15 0,30"
Fill="{TemplateBinding Background}" />
</StackPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Page.Resources>
<Grid>
<TabControl ItemContainerStyle="{StaticResource chevronTabItemStyle}">
<TabItem Header="Design" Background="DarkSlateBlue" />
<TabItem Header="Plan" Background="DarkCyan" />
<TabItem Header="Build" Background="LightSkyBlue" />
<TabItem Header="Test" Background="SandyBrown" />
<TabItem Header="Evaluate" Background="SteelBlue" />
</TabControl>
</Grid>
</Page>
あなたはおそらく、いくつかのプロパティを調整する必要がありますが、それはあなたが説明したものをざっとだ...
+1、とても素敵な答え! –
うわー、とてもいいです - これは私が探しているものに完璧に見えます。本当にしっかりしたベースを提供してくれてありがとう! – Steoates
Thomas Levesqueあなたの答えは美しいです!
前景色と少し問題があり、のTextBlockにプロパティを移動するには、プロパティIsEnableまたは選択が評価されるならば、我々は、ヘッダーの色を変更することができます。このように
ホワイト着色するために、すべてのタブを防ぎます。
<Style x:Key="TestNewTabStyle" TargetType="{x:Type TabItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabItem}">
<StackPanel Orientation="Horizontal" Margin="0,0,-7,0" Height="30">
<Path Data="M0,0 10,0 10,30 0,30 10,15" Fill="{TemplateBinding Background}"/>
<Grid >
<Rectangle Fill="{TemplateBinding Background}" />
<TextBlock Name="HeaderArrow" Text="{TemplateBinding Header}" Margin="15,5" VerticalAlignment="Center" Foreground="White"**/>
</Grid>
<Path Data="M0,0 10,15 0,30" Fill="{TemplateBinding Background}" />
</StackPanel>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter TargetName="HeaderArrow" Property="FontWeight" Value="Bold" />
<Setter TargetName="HeaderArrow" Property="Foreground" Value="Yellow" />
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter TargetName="HeaderArrow" Property="Foreground" Value="DarkGray" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
あなたが望むものはあまり明確ではありません...スケッチを投稿できますか? –
添付の画像をご覧ください。 – Relativity