2016-12-23 4 views
0

Wie kann ich den Rahmen um die TabControll-Header entfernen? ich ein Bild für Sie hochgeladen: http://fs5.directupload.net/images/161223/plbcwuyv.pngWPF TabControl-Header-Rahmen

<Style TargetType="{x:Type TabItem}" x:Key="tabStyle" BasedOn="{StaticResource baseStyle}"> 
     <Setter Property="Padding" Value="5" /> 
     <Setter Property="FontSize" Value="14px" /> 
     <Setter Property="FontWeight" Value="Bold" /> 
     <Setter Property="Typography.Capitals" Value="AllSmallCaps" /> 

</Style> 

Markup

<TabControl x:Name="tabControl" Grid.Row="1" BorderThickness="0"> 
     <TabItem Header="TabItem" Style="{StaticResource tabStyle}"> 
      <Grid Background="white" Margin="-3" /> 
     </TabItem> 
     <TabItem Header="TabItem"> 
      <Grid Background="white"/> 
     </TabItem> 
    </TabControl> 
+2

Sie sollten dieses Bild entfernen und uns tatsächlichen Code zeigen. – FCin

+0

Haben Sie versucht, ControlTemplate für tabitem anzupassen? Durch das Anpassen von ControlTemplate erhalten Sie vollständige Kontrolle über das Aussehen der Standardsteuerung (en). Diese [SO] (http://stackoverflow.com/questions/9740263/tab-item-and-tab-control-border-style) kann Ihnen helfen. –

Antwort

0

Der Wert der BorderThickness Eigenschaft in dem Standard fest einprogrammiert ist Control des TabItem. Sie müssen die Vorlage ändern, um sie ändern zu können.

Sie können die Standardvorlage in Ihr XAML-Markup kopieren, indem Sie im Designmodus in Visual Studio oder in Blend mit der rechten Maustaste auf das TabItem klicken und dann Vorlage bearbeiten-> Kopie bearbeiten wählen. Sie müssen dann die BorderThickness-Eigenschaft der Border-Elemente in der Vorlage ändern. Denken Sie daran, die MultiDataTriggers loszuwerden oder zu ändern, die die BorderThickness der Elemente "innerBorder" und "mainBorder" des TabItems unter bestimmten Bedingungen festlegen.

Hier ist etwas, das bekommen, sollten Sie begonnen:

<Style x:Key="FocusVisual"> 
    <Setter Property="Control.Template"> 
     <Setter.Value> 
      <ControlTemplate> 
       <Rectangle Margin="2" SnapsToDevicePixels="true" Stroke="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" StrokeThickness="1" StrokeDashArray="1 2"/> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 
<LinearGradientBrush x:Key="TabItem.Static.Background" EndPoint="0,1" StartPoint="0,0"> 
    <GradientStop Color="#F0F0F0" Offset="0.0"/> 
    <GradientStop Color="#E5E5E5" Offset="1.0"/> 
</LinearGradientBrush> 
<SolidColorBrush x:Key="TabItem.Static.Border" Color="#ACACAC"/> 
<LinearGradientBrush x:Key="TabItem.MouseOver.Background" EndPoint="0,1" StartPoint="0,0"> 
    <GradientStop Color="#ECF4FC" Offset="0.0"/> 
    <GradientStop Color="#DCECFC" Offset="1.0"/> 
</LinearGradientBrush> 
<SolidColorBrush x:Key="TabItem.MouseOver.Border" Color="#7EB4EA"/> 
<SolidColorBrush x:Key="TabItem.Disabled.Background" Color="#F0F0F0"/> 
<SolidColorBrush x:Key="TabItem.Disabled.Border" Color="#D9D9D9"/> 
<SolidColorBrush x:Key="TabItem.Selected.Border" Color="#ACACAC"/> 
<SolidColorBrush x:Key="TabItem.Selected.Background" Color="#FFFFFF"/> 
<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="0" Background="{TemplateBinding Background}" Margin="0"> 
         <Border x:Name="innerBorder" BorderBrush="{StaticResource TabItem.Selected.Border}" BorderThickness="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> 

fürchte ich, dass es kein einfacher Weg ist, der Grenzen, um loszuwerden, als die Steuervorlage zu ändern.