2017-01-06 15 views
2

私はWPFアプリケーションを作成していて、TabItemヘッダーのスタイルを変更して、背景色の変更が選択された場合にのみ表示しようとしています。問題は、そのスタイルを追加すると、TabItem内のTextBlockアイテムのスタイルが崩れることです。私はWPF/XAMLの専門家ではありません。以下は私のTabControlで使用しているスタイルです。私はMahAppsのメトロスタイリングも使用しています。任意のアイデアをいただければ幸いです。あなたがWPFコントロールのための新しいスタイルを書くとき、あなたは完全にすべてを再スキンいない場合WPF TabItemヘッダースタイリングのみ

  <TabControl.Resources> 
       <Style TargetType="TabItem"> 
        <Setter Property="Template"> 
         <Setter.Value> 
          <ControlTemplate TargetType="TabItem"> 
           <Border Name="Border" BorderThickness="1,1,1,0" BorderBrush="Gainsboro" CornerRadius="4,4,0,0" Margin="2,0"> 
            <ContentPresenter x:Name="ContentSite" 
            VerticalAlignment="Center" 
            HorizontalAlignment="Center" 
            ContentSource="Header" 
            Margin="10,2"/> 
           </Border> 
           <ControlTemplate.Triggers> 
            <Trigger Property="IsSelected" Value="True"> 
             <Setter TargetName="Border" Property="Background" Value="{DynamicResource AccentColorBrush}" /> 
            </Trigger> 
           </ControlTemplate.Triggers> 
          </ControlTemplate> 
         </Setter.Value> 
        </Setter> 
       </Style> 
      </TabControl.Resources> 
+0

あなたは "それはのTabItemの私のTextBlockの項目のスタイルを台無し" と言います。あなたはもっと具体的になりますか?あなたが提供したXAMLでTextBlockの表示に関する問題を再現することはできません。 –

+0

スタイリングを適所に置くと、すべての私のテキストブロック項目が黒い前景を持つようになります。白い背景を使用するとうまくいきますが、黒い背景に切り替えると、ラベルアイテムのように白に変わるのではなく黒が残りますので、テキストブロックのアイテムは表示されません。そのスタイルが、TabItem全体ではなくTabItem.Header要素をターゲットにする方法であれば、私の問題は解決すると思いますが、XAML/WPFについての限られた知識から、あなたはそうすることはできません。 – Developer

+0

XAMLには何もありませんが、何かのフォアグラウンドカラーを変更する可能性があります。 'Style'に' BasedOn'を設定しようとしましたか? '