2011-03-21 5 views
0
<Window.Resources> 
    <Style TargetType="{x:Type TabItem}"> 
     <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="{x:Type TabItem}"> 
      <Grid> 
       <Border 
       Name="Border" 
       Background="LightBlue" 
       BorderBrush="Black" 
       BorderThickness="1,1,1,1" 
       CornerRadius="6,6,0,0" > 
       <ContentPresenter x:Name="ContentSite" 
        VerticalAlignment="Center" 
        HorizontalAlignment="Center" 
        ContentSource="Header" 
        Margin="12,2,12,2"/> 
       </Border> 
      </Grid> 
      </ControlTemplate> 
     </Setter.Value> 
     </Setter> 
    </Style> 
    </Window.Resources> 
    <Grid> 
     <TabControl Height="181" VerticalAlignment="Top"> 
     <TabItem Header="Cheese" /> 
     <TabItem Header="Pepperoni" /> 
     <TabItem Header="Mushrooms" /> 
     </TabControl> 
     <TabControl Margin="0,201,0,60"> 
     <TabItem Header="Cheese" /> 
     <TabItem Header="Pepperoni" /> 
     <TabItem Header="Mushrooms" /> 
     </TabControl> 
    </Grid> 

해당 코드는 동일한 스타일의 두 TabControls를 만듭니다. 어떻게 그 두 TabControls 다른 스타일을 사용하게 만들 수 있습니까? 샘플 코드가 도움이 될 것입니다.xaml 두 개의 tabcontrol에 대한 스타일을 만드는 방법

답변

0

모든 탭 컨트롤의 탭 항목에 적용되는 "TabItem"을 대상으로하는 단일 스타일을 정의 했으므로 두 탭 컨트롤 모두 동일한 스타일을 갖게됩니다. x : Key 특성을 사용하여 두 가지 다른 스타일의 이름을 지정한 다음 요구 사항에 따라 TabControl 또는 TabItem에 적용 할 수 있습니다.

0

당신은

<Window.Resources> 
    <Style TargetType="{x:Type TabItem}" x:Key="TabItemStyle1"> 
     <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="{x:Type TabItem}"> 
      <Grid> 
      ------------ 
      ------------ 
      </Grid> 
      </ControlTemplate> 
     </Setter.Value> 
     </Setter> 
    </Style> 
    <Style TargetType="{x:Type TabItem}" x:Key="TabItemStyle2"> 
     <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="{x:Type TabItem}"> 
      <Grid> 
      ------------ 
      ------------ 
      </Grid> 
      </ControlTemplate> 
     </Setter.Value> 
     </Setter> 
    </Style> 
    </Window.Resources> 
<Grid> 
     <TabControl Height="181" VerticalAlignment="Top"> 
     <TabItem Header="Cheese" Style="{StaticResource TabItemStyle1} /> 
     <TabItem Header="Pepperoni" Style="{StaticResource TabItemStyle1} /> 
     <TabItem Header="Mushrooms" Style="{StaticResource TabItemStyle1} /> 
     </TabControl> 
     <TabControl Margin="0,201,0,60"> 
     <TabItem Header="Cheese" Style="{StaticResource TabItemStyle2} /> 
     <TabItem Header="Pepperoni" Style="{StaticResource TabItemStyle2} /> 
     <TabItem Header="Mushrooms" Style="{StaticResource TabItemStyle2} /> 
     </TabControl> 
    </Grid> 

또는 사용할 수있는 제어 수준 스타일의 자원

<Grid> 
      <TabControl Height="181" VerticalAlignment="Top"> 
     <TabControl.Resources> 
     <Style TargetType="{x:Type TabItem}"> 
      <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="{x:Type TabItem}"> 
       <Grid> 
       ------------ 
       ------------ 
       </Grid> 
       </ControlTemplate> 
      </Setter.Value> 
      </Setter> 
     </Style> 
</TabControl.Resources> 
      <TabItem Header="Cheese" /> 
      <TabItem Header="Pepperoni" /> 
      <TabItem Header="Mushrooms" /> 
      </TabControl> 
      <TabControl Margin="0,201,0,60"> 
<TabControl.Resources> 
     <Style TargetType="{x:Type TabItem}"> 
      <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="{x:Type TabItem}"> 
       <Grid> 
       ------------ 
       ------------ 
       </Grid> 
       </ControlTemplate> 
      </Setter.Value> 
      </Setter> 
     </Style> 
</TabControl.Resources> 
      <TabItem Header="Cheese" /> 
      <TabItem Header="Pepperoni" /> 
      <TabItem Header="Mushrooms" /> 
      </TabControl> 
     </Grid> 
에게 스타일의 자원에 대한 키를 제공하는 개별 tabitems에 대한 스타일을 specifieing, 아래의 코드처럼 할 수 있습니다
관련 문제