2016-08-12 5 views
1

나는 TabControl 요소를 가지고 있습니다. 같이 탭 머리글 테두리 색을 변경하는 방법은 무엇입니까?

Tab style

나는, 빨간색으로 TabControlBorderBrush을 변경했습니다. 나를 미치게 만드는 원인은 탭 자체에 동일한 색상을 사용할 수 없다는 것입니다.

WPF TabItem Header Styling처럼 많은 예제를 시도했지만 기쁨은 없었습니다. 변경하려는 경계는 Header 요소의 일부가 아닙니다. Header 요소는 내가 바꾸고 싶은 요소 안에 있습니다.

나는 완전한 템플릿을 https://msdn.microsoft.com/en-us/library/ms754137(v=vs.110).aspx에서 만들려고 노력했지만, 기쁨이없고,보기 흉한 것처럼 보이고 어떻게 보일 지조차 알지 못한다.

어디서 수정해야 할 원본 템플릿을 얻을 수 있습니까? 테두리 색만 바꾸고 싶습니다. 거대한 템플릿을 붙여 넣거나 편집하는 데는 신경 쓰지 않지만 올바른 실제 템플릿이 필요합니다. |

은 바로 TabControl에 클릭 XAML 디자인 모드에서

+0

Tab Item Preview

나는 혼합 당신이 수정할 수있는 원본 템플릿의 사본을 만들 수 생각합니다. – Joey

답변

1

(. 나는 .NET 프레임 워크 4.6.2을 사용), 및 상황에 맞는 메뉴에서 템플릿 편집을 선택 복사본 편집 .... 그러면 MSDN의 cheeseball 예제가 아니라 실제로 사용중인 실제 템플릿을 얻을 수 있습니다 (최소한 디자인 타임에 XAML 디자이너가 아는 한).

일단 템플릿을 편집하면 ... 당신을 죽이지 않는 것이 당신을 강하게합니다. 보통.

enter image description here

+0

감사합니다. 스 앵커를 찾으세요! – Harry

1

여기 혼합에서 TabItemStyle입니다.

원하는 줄은 처음부터 메인 보더입니다. 선택한 테두리 브러시가 적용되고 있지만 테두리 두께로는 실제로 표시 할 수없는 것을 볼 수 있습니다. 나는 그것을 2,2,2,0으로 바꿨고 tabitem 주위에 빨간 테두리가 생겼다.

<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> 
관련 문제