2011-10-07 69 views
0

目前,我在我的觀點之一,我有以下的TabControl設置:自定義的ControlTemplate的一個TabControl

<TabControl ItemsSource="{Binding Workspaces}" 
       ItemTemplate="{StaticResource WorkspaceTemplate}" 
       IsSynchronizedWithCurrentItem="True" Background="{x:Null}"> 

我想通過設置控件模板性質完全改變的TabControl的外觀和感覺。我的計劃是沒有任何其他選項卡可見,並且只有當前選項卡的內容可見,並且沒有任何TabControl的痕跡,但仍然允許用戶將Ctrl + Tab分配給其他選項卡。

坦率地說,我不知道從哪裏開始。我嘗試將一個ContentPresenter添加到TabControl的ControlTemplate,但我無法弄清楚如何將它綁定到當前活動的選項卡(請注意,不是實際的選項卡,而是TabItem的內容)。

任何幫助或者一些樣板代碼讓我開始?也許有更合適的控制(即使這意味着我將不得不失去Ctrl + Tab功能)。

回答

0

您可以創建自己的ControlTemplate。

<ControlTemplate TargetType="{x:Type TabItem}"> 
<Grid> 
    <Border 
      Name="Border" 
      Margin="0,0,-4,0" 
      Background="LightGray" 
      BorderBrush="Black" 
      BorderThickness="1,1,1,1" 
      Visibility="Collapsed" 
      CornerRadius="2,12,0,0" > 
     <ContentPresenter x:Name="ContentSite" 
       VerticalAlignment="Center" 
       HorizontalAlignment="Center" 
       ContentSource="Header" 
       Margin="12,2,12,2" 
       RecognizesAccessKey="True"/> 
    </Border> 
</Grid> 
<ControlTemplate.Triggers> 
    <Trigger Property="IsSelected" Value="True"> 
     <Setter TargetName="Border" Property="Background" Value="Gray" /> 
     <Setter TargetName="Border" Property="BorderThickness" Value="1,1,1,0" /> 
     <Setter TargetName="Border" Property="Visibility" Value="Visible" /> 
    </Trigger> 
</ControlTemplate.Triggers> 

相關問題