2011-09-06 12 views

cevap

14

Kaxaml ile yapılan kısa bir örnek:

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

Muhtemelen birkaç özelliklerini ayarlamak gerekir, ancak bu nitelendirdiği kabaca var ...

enter image description here

+0

+1, çok güzel cevap! –

+0

Vay, çok güzel - bu aradığım şey için mükemmel görünüyor .. gerçekten sağlam bir temel sağlamak için teşekkürler! – Steoates

3

Thomas Levesque cevabınız güzel!

ön plan rengi ile küçük bir sorun var, engellemek TextBlock içine tüm sekmeyi mülkü taşımak özellikleri IsEnable veya Seçili değerli olmaları halinde başlığının rengini değiştirebilir Bu şekilde

Beyaz renkli edilecek.

<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> 
İlgili konular