2012-10-03 69 views
2

我想要實現的內容很容易解釋:改變一個wpf-tabitem的背景顏色以防被選中(它應該適合窗口背景)。默認控件的所有其他屬性應保持不變。如何更改默認TabItem的觸發器模板中的單個屬性?

我想出了轉儲的解決方案是整個默認樣式複製到我的ResourceDictionary和更換顏色#FFF9F9F9在以下部分:

<Trigger Property="Selector.IsSelected"> 
    /* ..... cutting some lines here ....*> 
    <Setter Property="Panel.Background" TargetName="Bd"> 
    <Setter.Value> 
    <SolidColorBrush> 
    #FFF9F9F9</SolidColorBrush> 
    </Setter.Value> 
    </Setter> 

很顯然,我不喜歡這一點,並試圖申請繼承(BasedOn="{StaticResource {x:Type TabItem}}")。這沒有效果。 然後我嘗試了模板設置。但是,我未能在默認模板中處理邊界,通過「Bd」引用avobe。添加邊框到我的ContentTemplated工作,但默認的TabItem的所有其他funcionalities已經消失(鼠標懸停等)。

有人可以給我一個提示如何更改此顏色屬性,而無需複製整個默認模板?任何幫助感謝!

回答

0

如果顏色未鏈接到默認模板中的屬性(如Background),則必須用編輯後的副本替換模板,否則沒有其他(可接受的)更改方法。

+0

有一個屬性(「Panel.Background」),但它不可訪問。我希望會有一些解決方法。謝謝你明確表示沒有別的辦法。 – user1717654