2009-09-29 86 views
3

我有一個自定義控件庫,我在其中定義了一個控件模板,它使用了一些自定義樣式。我的控件模板位於Generic.xaml文件中,它使用的樣式也位於此處,並由控件模板通過StaticResource標記擴展訪問。
在某些情況下,當我使用這個控件庫時,我想更改一些使用模板的樣式,但我不知道該怎麼做。
我認爲如果我將添加到我的窗口的資源字典樣式與模板使用的名稱,我的樣式將「覆蓋」在Generic.xaml文件中定義,但它沒有工作。
我該怎麼辦?覆蓋generic.xml中定義的樣式

回答

0

是否有效?

<Style TargetType="{x:Type YourCustomControl}" 
     BasedOn="{StaticResource {x:Type YourCustomControl}}"> 
    <Setter Property="SomeStylePropertyOfYourCustomControl" 
      Value="{StaticResource SomeStyleYouWantToUseInstead}"/> 
</Style> 
+0

我的樣式的鍵是字符串,而不是類型,因爲我的模板中的樣式應用在模板中的元素實例上。使用BasedOn =「{StaticResource {x:Type YourCustomControl}}」的 – Andy 2009-09-29 10:55:53

+0

僅表示它基於任何樣式是控件的默認樣式。你能發表一些你的風格的例子嗎? – Botz3000 2009-09-29 10:59:09