2016-11-07 4 views
0

私は自分のアプリケーションでtabcontrolをメニューとして使用します。私はそれをスタイルして、今見ているアイテムの見出しを欲しがっています。問題は、これが "コンテンツ"領域で有効になることですが、これは私が望むものではありません。WPF ItemTab Style

current view how it's look

seperatlyコンテンツ領域のスタイルを設定する方法はあります:

これが私の窓のコード

<TabControl Name="Tab_Content" Grid.Row="1" TabStripPlacement="Left" > 
     <TabControl.Resources> 
      <Style TargetType="TabItem"> 
       <Setter Property="Template"> 
        <Setter.Value> 
         <ControlTemplate TargetType="TabItem"> 
          <Grid Name="Panel"> 
           <ContentPresenter x:Name="ContentSite" 
            VerticalAlignment="Center" 
            HorizontalAlignment="Left" 
            ContentSource="Header" 
            Height="25" 
            Margin="5,10,0,0" Width="150" /> 
          </Grid> 
          <ControlTemplate.Triggers> 
           <Trigger Property="IsSelected" Value="True"> 
            <Setter Property="Foreground" Value="Blue" /> 
            <Setter Property="FontWeight" Value="Bold" /> 
            <Setter TargetName="Panel" Property="Background" Value="White" /> 
           </Trigger> 
           <Trigger Property="IsSelected" Value="False"> 
            <Setter Property="Foreground" Value="Black" /> 
            <Setter TargetName="Panel" Property="Background" Value="White" /> 
           </Trigger> 
           <Trigger Property="IsMouseOver" Value="True"> 
            <Setter Property="Foreground" Value="White" /> 
            <Setter TargetName="Panel" Property="Background" Value="Blue" /> 
           </Trigger> 
          </ControlTemplate.Triggers> 
         </ControlTemplate> 
        </Setter.Value> 
       </Setter> 
      </Style> 
     </TabControl.Resources> 
     <TabItem Name="item_Home" Header="Home" > 
      <Grid> 
       <Label Name="Test" Content="hello" /> 
      </Grid> 
     </TabItem> 

これは、それは一見だ方法ですが?

答えて

0

ヘッダーテキストブロックのスタイルを設定し、祖先のTabItemを参照してください。

XAML:それぞれのTabItemで

<Style TargetType="{x:Type TextBlock}" x:Key="toggleTabStyle"> 
    <Setter Property="Foreground" Value="Black" /> 
    <Setter Property="Background" Value="White" /> 
    <Style.Triggers> 
     <DataTrigger Binding="{Binding Path=IsSelected, RelativeSource={RelativeSource AncestorType=TabItem}}" Value="True"> 
      <Setter Property="Foreground" Value="Blue" /> 
      <Setter Property="FontWeight" Value="Bold" /> 
      <Setter Property="Background" Value="White" /> 
     </DataTrigger> 
     <DataTrigger Binding="{Binding Path=IsSelected, RelativeSource={RelativeSource AncestorType=TabItem}}" Value="False"> 
      <Setter Property="Foreground" Value="Black" /> 
      <Setter Property="Background" Value="White" /> 
     </DataTrigger> 
     <DataTrigger Binding="{Binding Path=IsMouseOver, RelativeSource={RelativeSource AncestorType=TabItem}}" Value="True"> 
      <Setter Property="Foreground" Value="White" /> 
      <Setter Property="Background" Value="Blue" /> 
     </DataTrigger> 
    </Style.Triggers> 
</Style> 

と基準:

<TabItem> 
     <TabItem.Header> 
      <TextBlock Text="Header Text Here" Style="{StaticResource toggleTabStyle}"/> 
     </TabItem.Header>       
     ... 
    </TabItem>