2016-08-12 32 views
1

私はTabControl要素を持っています。タブヘッダーの境界線の色を変更するにはどうすればよいですか?

Tab style

示すようにIは、赤色にTabControlBorderBrushを変えました。 私は怒っているのは、タブ自体に同じ色を付けることができないことです。

WPF TabItem Header Stylingのような多くの例を試しましたが、喜びはありません。 変更したい境界線は、Header要素の一部ではありません。 Header要素は、変更したい要素の中にあります。

私はhttps://msdn.microsoft.com/en-us/library/ms754137(v=vs.110).aspxから完全なテンプレートを使用しようとしましたが、喜びはありません。醜いように見えます。どのように見えるようにするかもわかりません。

どこで元のテンプレートを変更できますか?私は境界線の色を変更したいだけです。私は巨大なテンプレートを貼り付けて編集するのを気にしませんが、実際の正しいテンプレートが必要です。 |

は、右のあなたのTabControlをクリックして、XAMLデザインモードで

+0

私は、ブレンドは、あなたが変更し、元のテンプレートのコピーを作成することができだと思います。 – Joey

答えて

1

(。私は、.NET Framework 4.6.2を使用)、およびコンテキストメニューに[テンプレートの編集]を選択しコピーを編集...。それは実際にそこに使用されている実際のテンプレートを取得します(少なくとも、XAMLデザイナーが設計時に知っている限り)。これはMSDNのチーズボールの例ではありません。

あなたがいったんそれを持っているとそのテンプレートを編集するのは...あなたを殺さないものはあなたをより強くします。通常。

enter image description here

+0

ありがとうございます! – Harry

1

ここブレンドからTabItemStyleです。

ご希望の行は、最初の近くにメインボーダーです。あなたが選んだボーダーブラシが適用されていますが、ボーダーの太さによって実際に表示されていないことがわかります。私はそれを2,2,2,0に変更し、タブアイテムの周りに赤い枠線を得ました。

Tab Item Preview

<Style x:Key="TabItemStyle1" TargetType="{x:Type TabItem}"> 
     <Setter Property="FocusVisualStyle" Value="{StaticResource FocusVisual}"/> 
     <Setter Property="Foreground" Value="Black"/> 
     <Setter Property="Background" Value="{StaticResource TabItem.Static.Background}"/> 
     <Setter Property="BorderBrush" Value="{StaticResource TabItem.Static.Border}"/> 
     <Setter Property="Margin" Value="0"/> 
     <Setter Property="Padding" Value="6,2,6,2"/> 
     <Setter Property="HorizontalContentAlignment" Value="Stretch"/> 
     <Setter Property="VerticalContentAlignment" Value="Stretch"/> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="{x:Type TabItem}"> 
        <Grid x:Name="templateRoot" SnapsToDevicePixels="true"> 
         <Border x:Name="mainBorder" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="2,2,2,0" Background="{TemplateBinding Background}" Margin="0"> 
          <Border x:Name="innerBorder" BorderBrush="{StaticResource TabItem.Selected.Border}" BorderThickness="1,1,1,0" Background="{StaticResource TabItem.Selected.Background}" Margin="-1" Opacity="0"/> 
         </Border> 
         <ContentPresenter x:Name="contentPresenter" ContentSource="Header" Focusable="False" HorizontalAlignment="{Binding HorizontalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}" Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{Binding VerticalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}"/> 
        </Grid> 
        <ControlTemplate.Triggers> 
         <MultiDataTrigger> 
          <MultiDataTrigger.Conditions> 
           <Condition Binding="{Binding IsMouseOver, RelativeSource={RelativeSource Self}}" Value="true"/> 
           <Condition Binding="{Binding TabStripPlacement, RelativeSource={RelativeSource AncestorType={x:Type TabControl}}}" Value="Left"/> 
          </MultiDataTrigger.Conditions> 
          <Setter Property="Background" TargetName="mainBorder" Value="{StaticResource TabItem.MouseOver.Background}"/> 
          <Setter Property="BorderBrush" TargetName="mainBorder" Value="{StaticResource TabItem.MouseOver.Border}"/> 
          <Setter Property="BorderThickness" TargetName="innerBorder" Value="1,1,0,1"/> 
          <Setter Property="BorderThickness" TargetName="mainBorder" Value="1,1,0,1"/> 
         </MultiDataTrigger> 
         <MultiDataTrigger> 
          <MultiDataTrigger.Conditions> 
           <Condition Binding="{Binding IsMouseOver, RelativeSource={RelativeSource Self}}" Value="true"/> 
           <Condition Binding="{Binding TabStripPlacement, RelativeSource={RelativeSource AncestorType={x:Type TabControl}}}" Value="Bottom"/> 
          </MultiDataTrigger.Conditions> 
          <Setter Property="Background" TargetName="mainBorder" Value="{StaticResource TabItem.MouseOver.Background}"/> 
          <Setter Property="BorderBrush" TargetName="mainBorder" Value="{StaticResource TabItem.MouseOver.Border}"/> 
          <Setter Property="BorderThickness" TargetName="innerBorder" Value="1,0,1,1"/> 
          <Setter Property="BorderThickness" TargetName="mainBorder" Value="1,0,1,1"/> 
         </MultiDataTrigger> 
         <MultiDataTrigger> 
          <MultiDataTrigger.Conditions> 
           <Condition Binding="{Binding IsMouseOver, RelativeSource={RelativeSource Self}}" Value="true"/> 
           <Condition Binding="{Binding TabStripPlacement, RelativeSource={RelativeSource AncestorType={x:Type TabControl}}}" Value="Right"/> 
          </MultiDataTrigger.Conditions> 
          <Setter Property="Background" TargetName="mainBorder" Value="{StaticResource TabItem.MouseOver.Background}"/> 
          <Setter Property="BorderBrush" TargetName="mainBorder" Value="{StaticResource TabItem.MouseOver.Border}"/> 
          <Setter Property="BorderThickness" TargetName="innerBorder" Value="0,1,1,1"/> 
          <Setter Property="BorderThickness" TargetName="mainBorder" Value="0,1,1,1"/> 
         </MultiDataTrigger> 
         <MultiDataTrigger> 
          <MultiDataTrigger.Conditions> 
           <Condition Binding="{Binding IsMouseOver, RelativeSource={RelativeSource Self}}" Value="true"/> 
           <Condition Binding="{Binding TabStripPlacement, RelativeSource={RelativeSource AncestorType={x:Type TabControl}}}" Value="Top"/> 
          </MultiDataTrigger.Conditions> 
          <Setter Property="Background" TargetName="mainBorder" Value="{StaticResource TabItem.MouseOver.Background}"/> 
          <Setter Property="BorderBrush" TargetName="mainBorder" Value="{StaticResource TabItem.MouseOver.Border}"/> 
          <Setter Property="BorderThickness" TargetName="innerBorder" Value="1,1,1,0"/> 
          <Setter Property="BorderThickness" TargetName="mainBorder" Value="1,1,1,0"/> 
         </MultiDataTrigger> 
         <MultiDataTrigger> 
          <MultiDataTrigger.Conditions> 
           <Condition Binding="{Binding IsEnabled, RelativeSource={RelativeSource Self}}" Value="false"/> 
           <Condition Binding="{Binding TabStripPlacement, RelativeSource={RelativeSource AncestorType={x:Type TabControl}}}" Value="Left"/> 
          </MultiDataTrigger.Conditions> 
          <Setter Property="Opacity" TargetName="contentPresenter" Value="0.56"/> 
          <Setter Property="Background" TargetName="mainBorder" Value="{StaticResource TabItem.Disabled.Background}"/> 
          <Setter Property="BorderBrush" TargetName="mainBorder" Value="{StaticResource TabItem.Disabled.Border}"/> 
          <Setter Property="BorderThickness" TargetName="innerBorder" Value="1,1,0,1"/> 
          <Setter Property="BorderThickness" TargetName="mainBorder" Value="1,1,0,1"/> 
         </MultiDataTrigger> 
         <MultiDataTrigger> 
          <MultiDataTrigger.Conditions> 
           <Condition Binding="{Binding IsEnabled, RelativeSource={RelativeSource Self}}" Value="false"/> 
           <Condition Binding="{Binding TabStripPlacement, RelativeSource={RelativeSource AncestorType={x:Type TabControl}}}" Value="Bottom"/> 
          </MultiDataTrigger.Conditions> 
          <Setter Property="Opacity" TargetName="contentPresenter" Value="0.56"/> 
          <Setter Property="Background" TargetName="mainBorder" Value="{StaticResource TabItem.Disabled.Background}"/> 
          <Setter Property="BorderBrush" TargetName="mainBorder" Value="{StaticResource TabItem.Disabled.Border}"/> 
          <Setter Property="BorderThickness" TargetName="innerBorder" Value="1,0,1,1"/> 
          <Setter Property="BorderThickness" TargetName="mainBorder" Value="1,0,1,1"/> 
         </MultiDataTrigger> 
         <MultiDataTrigger> 
          <MultiDataTrigger.Conditions> 
           <Condition Binding="{Binding IsEnabled, RelativeSource={RelativeSource Self}}" Value="false"/> 
           <Condition Binding="{Binding TabStripPlacement, RelativeSource={RelativeSource AncestorType={x:Type TabControl}}}" Value="Right"/> 
          </MultiDataTrigger.Conditions> 
          <Setter Property="Opacity" TargetName="contentPresenter" Value="0.56"/> 
          <Setter Property="Background" TargetName="mainBorder" Value="{StaticResource TabItem.Disabled.Background}"/> 
          <Setter Property="BorderBrush" TargetName="mainBorder" Value="{StaticResource TabItem.Disabled.Border}"/> 
          <Setter Property="BorderThickness" TargetName="innerBorder" Value="0,1,1,1"/> 
          <Setter Property="BorderThickness" TargetName="mainBorder" Value="0,1,1,1"/> 
         </MultiDataTrigger> 
         <MultiDataTrigger> 
          <MultiDataTrigger.Conditions> 
           <Condition Binding="{Binding IsEnabled, RelativeSource={RelativeSource Self}}" Value="false"/> 
           <Condition Binding="{Binding TabStripPlacement, RelativeSource={RelativeSource AncestorType={x:Type TabControl}}}" Value="Top"/> 
          </MultiDataTrigger.Conditions> 
          <Setter Property="Opacity" TargetName="contentPresenter" Value="0.56"/> 
          <Setter Property="Background" TargetName="mainBorder" Value="{StaticResource TabItem.Disabled.Background}"/> 
          <Setter Property="BorderBrush" TargetName="mainBorder" Value="{StaticResource TabItem.Disabled.Border}"/> 
          <Setter Property="BorderThickness" TargetName="innerBorder" Value="1,1,1,0"/> 
          <Setter Property="BorderThickness" TargetName="mainBorder" Value="1,1,1,0"/> 
         </MultiDataTrigger> 
         <MultiDataTrigger> 
          <MultiDataTrigger.Conditions> 
           <Condition Binding="{Binding IsSelected, RelativeSource={RelativeSource Self}}" Value="false"/> 
           <Condition Binding="{Binding TabStripPlacement, RelativeSource={RelativeSource AncestorType={x:Type TabControl}}}" Value="Left"/> 
          </MultiDataTrigger.Conditions> 
          <Setter Property="BorderThickness" TargetName="innerBorder" Value="1,1,0,1"/> 
          <Setter Property="BorderThickness" TargetName="mainBorder" Value="1,1,0,1"/> 
         </MultiDataTrigger> 
         <MultiDataTrigger> 
          <MultiDataTrigger.Conditions> 
           <Condition Binding="{Binding IsSelected, RelativeSource={RelativeSource Self}}" Value="true"/> 
           <Condition Binding="{Binding TabStripPlacement, RelativeSource={RelativeSource AncestorType={x:Type TabControl}}}" Value="Left"/> 
          </MultiDataTrigger.Conditions> 
          <Setter Property="Panel.ZIndex" Value="1"/> 
          <Setter Property="Margin" Value="-2,-2,0,-2"/> 
          <Setter Property="Opacity" TargetName="innerBorder" Value="1"/> 
          <Setter Property="BorderThickness" TargetName="innerBorder" Value="1,1,0,1"/> 
          <Setter Property="BorderThickness" TargetName="mainBorder" Value="1,1,0,1"/> 
         </MultiDataTrigger> 
         <MultiDataTrigger> 
          <MultiDataTrigger.Conditions> 
           <Condition Binding="{Binding IsSelected, RelativeSource={RelativeSource Self}}" Value="false"/> 
           <Condition Binding="{Binding TabStripPlacement, RelativeSource={RelativeSource AncestorType={x:Type TabControl}}}" Value="Bottom"/> 
          </MultiDataTrigger.Conditions> 
          <Setter Property="BorderThickness" TargetName="innerBorder" Value="1,0,1,1"/> 
          <Setter Property="BorderThickness" TargetName="mainBorder" Value="1,0,1,1"/> 
         </MultiDataTrigger> 
         <MultiDataTrigger> 
          <MultiDataTrigger.Conditions> 
           <Condition Binding="{Binding IsSelected, RelativeSource={RelativeSource Self}}" Value="true"/> 
           <Condition Binding="{Binding TabStripPlacement, RelativeSource={RelativeSource AncestorType={x:Type TabControl}}}" Value="Bottom"/> 
          </MultiDataTrigger.Conditions> 
          <Setter Property="Panel.ZIndex" Value="1"/> 
          <Setter Property="Margin" Value="-2,0,-2,-2"/> 
          <Setter Property="Opacity" TargetName="innerBorder" Value="1"/> 
          <Setter Property="BorderThickness" TargetName="innerBorder" Value="1,0,1,1"/> 
          <Setter Property="BorderThickness" TargetName="mainBorder" Value="1,0,1,1"/> 
         </MultiDataTrigger> 
         <MultiDataTrigger> 
          <MultiDataTrigger.Conditions> 
           <Condition Binding="{Binding IsSelected, RelativeSource={RelativeSource Self}}" Value="false"/> 
           <Condition Binding="{Binding TabStripPlacement, RelativeSource={RelativeSource AncestorType={x:Type TabControl}}}" Value="Right"/> 
          </MultiDataTrigger.Conditions> 
          <Setter Property="BorderThickness" TargetName="innerBorder" Value="0,1,1,1"/> 
          <Setter Property="BorderThickness" TargetName="mainBorder" Value="0,1,1,1"/> 
         </MultiDataTrigger> 
         <MultiDataTrigger> 
          <MultiDataTrigger.Conditions> 
           <Condition Binding="{Binding IsSelected, RelativeSource={RelativeSource Self}}" Value="true"/> 
           <Condition Binding="{Binding TabStripPlacement, RelativeSource={RelativeSource AncestorType={x:Type TabControl}}}" Value="Right"/> 
          </MultiDataTrigger.Conditions> 
          <Setter Property="Panel.ZIndex" Value="1"/> 
          <Setter Property="Margin" Value="0,-2,-2,-2"/> 
          <Setter Property="Opacity" TargetName="innerBorder" Value="1"/> 
          <Setter Property="BorderThickness" TargetName="innerBorder" Value="0,1,1,1"/> 
          <Setter Property="BorderThickness" TargetName="mainBorder" Value="0,1,1,1"/> 
         </MultiDataTrigger> 
         <MultiDataTrigger> 
          <MultiDataTrigger.Conditions> 
           <Condition Binding="{Binding IsSelected, RelativeSource={RelativeSource Self}}" Value="false"/> 
           <Condition Binding="{Binding TabStripPlacement, RelativeSource={RelativeSource AncestorType={x:Type TabControl}}}" Value="Top"/> 
          </MultiDataTrigger.Conditions> 
          <Setter Property="BorderThickness" TargetName="innerBorder" Value="1,1,1,0"/> 
          <Setter Property="BorderThickness" TargetName="mainBorder" Value="1,1,1,0"/> 
         </MultiDataTrigger> 
         <MultiDataTrigger> 
          <MultiDataTrigger.Conditions> 
           <Condition Binding="{Binding IsSelected, RelativeSource={RelativeSource Self}}" Value="true"/> 
           <Condition Binding="{Binding TabStripPlacement, RelativeSource={RelativeSource AncestorType={x:Type TabControl}}}" Value="Top"/> 
          </MultiDataTrigger.Conditions> 
          <Setter Property="Panel.ZIndex" Value="1"/> 
          <Setter Property="Margin" Value="-2,-2,-2,0"/> 
          <Setter Property="Opacity" TargetName="innerBorder" Value="1"/> 
          <Setter Property="BorderThickness" TargetName="innerBorder" Value="1,1,1,0"/> 
          <Setter Property="BorderThickness" TargetName="mainBorder" Value="1,1,1,0"/> 
         </MultiDataTrigger> 
        </ControlTemplate.Triggers> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 
関連する問題