2014-12-03 157 views
1

我有一個TabControl與幾個TabItems。每個TabItem都有一個帶有TextBlock的網格和一個具有透明區域的圖像。如何使WPF TabItem標題的背景透明?

我的目標是讓文本和圖像完全可見,並通過透明區域查看Window.Background圖像。

問題:無論我嘗試了什麼,在我設置的Image和TextBlock背後都有一個白色背景。

我試圖設置TabControl不透明度爲0,但這使整個事情消失,如預期。 與TabItem不透明度相同的結果 - > TabItem不可見。 Next我設置TabItems前景,BorderBrush和背景爲不透明度=「0」什麼都沒有改變:(

我對WPF比較新,英文不是我的母語,所以請原諒我,如果我的問題是愚蠢的而我的英語不好提前

感謝

EDIT(Screenshotlink):!http://i.stack.imgur.com/NN8AR.png


我不能發佈的截圖,因爲我沒有10的聲譽,所以我增加了鏈接去它
我刪除d的圖像,只留下文本框,所以不會有任何混淆

+0

你可以上傳一些截圖,並顯示你想要透明的部分。 – Bolu 2014-12-03 10:39:05

+0

增加了一個截圖 – 1stkeks 2014-12-03 10:51:03

回答

2

您將需要製作一個自定義TabItem ControlTemplate來這樣做。

這裏有一個稍微修改的TabItem的ControlTemplate(略從default一個修改):

<SolidColorBrush x:Key="SolidBorderBrush" Color="#888" /> 

<SolidColorBrush x:Key="DisabledBorderBrush" Color="#AAA" /> 

<SolidColorBrush x:Key="DisabledForegroundBrush" Color="#888" /> 

<Style TargetType="{x:Type TabItem}"> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="{x:Type TabItem}"> 
       <Grid Background="Transparent"> 
        <Border 
          Name="Border" 
          Margin="0,0,-4,0" 
          Background="Transparent" 
          BorderBrush="{StaticResource SolidBorderBrush}" 
          BorderThickness="1,1,1,1" 
          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 Property="Panel.ZIndex" Value="100" /> 
         <Setter TargetName="Border" Property="BorderThickness" Value="1,1,1,0" /> 
        </Trigger> 
        <Trigger Property="IsEnabled" Value="False"> 
         <Setter TargetName="Border" Property="BorderBrush" Value="{StaticResource DisabledBorderBrush}" /> 
         <Setter Property="Foreground" Value="{StaticResource DisabledForegroundBrush}" /> 
        </Trigger> 
       </ControlTemplate.Triggers> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

你可能需要稍作修改,以顯示TabItem的選擇是什麼(在觸發IsSelected) 。

+0

這就像一個魅力! 非常感謝。 – 1stkeks 2014-12-04 06:58:42