2008-12-22 87 views

回答

60

可以使用施加了DataTrigger到的TabItem如果父TabControl的只有一個項目,將其摺疊樣式:

<Grid xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:sys="clr-namespace:System;assembly=mscorlib" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 
    <Grid.Resources> 
     <x:Array x:Key="tabData" Type="{x:Type sys:String}"> 
      <sys:String>do</sys:String> 
      <sys:String>re</sys:String> 
      <sys:String>mi</sys:String> 
     </x:Array> 
    </Grid.Resources> 
    <TabControl ItemsSource="{StaticResource tabData}"> 
     <TabControl.ItemContainerStyle> 
      <Style TargetType="{x:Type TabItem}"> 
       <Style.Triggers> 
        <DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type TabControl}}, Path=Items.Count}" Value="1"> 
         <Setter Property="Visibility" Value="Collapsed"/> 
        </DataTrigger> 
       </Style.Triggers>     
      </Style> 
     </TabControl.ItemContainerStyle> 
    </TabControl> 
</Grid> 

完全如果有如果你想擺脫的TabControl只有一個項目,該邏輯應該可能在更高的水平。