2016-10-22 3 views
0

Ich habe eine TabControl mit dieser Struktur:Split TabItem Ursache Stil verloren

<TabControl> 
     <TabControl.Resources> 
      <Style TargetType="TabItem" BasedOn="{StaticResource MetroTabItem}"> 
       <Setter Property="Controls:ControlsHelper.HeaderFontSize" Value="20" /> 
      </Style> 
     </TabControl.Resources> 
     <local:Analysis /> 
</TabControl> 

Jetzt muss ich jedes TabItem geteilt, also habe ich so etwas wie ein UserControl mit dieser Struktur erstellen:

<TabItem xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
     xmlns:Controls="http://metro.mahapps.com/winfx/xaml/controls" 
     mc:Ignorable="d" Header="Analysis" Style="{StaticResource MetroTabItem}"> 
<Grid> 

</Grid> 

ist das Problem, dass die TabItem mit Namensraum importiert local: nicht den Stil desnimmtin der Resource. Also zum Lösen dieser muss ich die Stil-Ressource in jedem TabItem setzen, wird dies Redundanz-Code verursachen. Wie kann ich den Stil TabControl Resource im aufgeteilten TabItem annehmen?

Danke.

Antwort

1

Sie können Ihren eigenen Stil als eine statische Ressource in Ihrem App.xaml oder Ihre Window.xaml wie folgt erstellen:

<Application.Resources> 
    <Style TargetType="TabItem" x:Key="MyTabItemStyle" BasedOn="{StaticResource MetroTabItem}"> 
     <Setter Property="Controls:ControlsHelper.HeaderFontSize" Value="20" /> 
    </Style> 
</Application.Resources> 

Sie geben Ihrem Stil einen Namen (MyTabItemStyle in diesem Beispiel), die darauf basiert, der Stil.

Dann anstelle der Verwendung des MetroTabItem Stil direkt in Ihrem benutzerdefinierten TabItem, verwenden Sie Ihren eigenen Stil MyTabItemStyle wie folgt aus:

<TabItem xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:Controls="http://metro.mahapps.com/winfx/xaml/controls" 
    mc:Ignorable="d" Header="Analysis" Style="{StaticResource MyTabItemStyle}"> 
    <Grid> 

    </Grid> 
</TabItem>