很容易,當你繼承的控制,並通過DefaultStyleKeyProperty.OverrideMetadata
創建自己的我不知道你實現覆蓋。通常如果您爲相關類型創建樣式,則會覆蓋現有的樣式,除非您使用BasedOn
屬性。
例如
<Style TargetType="local:PieChart" BasedOn="{StaticResource BaseChartStyle}">
<Setter Property="ChartAreaStyle" Value="{StaticResource PieChartChartAreaStyle}" />
<Setter Property="PlotterAreaStyle" Value="{StaticResource PieChartPlotterAreaStyle}" />
</Style>
,如果你從現有的樣式導出的元素上面redfine作爲
<Style TargetType="local:PieChart" >
... your style
</Style>
它將取代現有的樣式
,或者你可以選擇覆蓋特定財產通過BasedOn="{StaticResource {x:Type local:PieChart}}"
<Style TargetType="local:PieChart" BasedOn="{StaticResource {x:Type local:PieChart}}">
<Setter Property="ChartAreaStyle" Value="{StaticResource MyChartAreaStyle}" />
</Style>
用類似的方法,你可以用你自己的版本覆蓋你想要的元素的屬性Template
。
你是否繼承了控件?或者只是想重新定義樣式和模板? – pushpraj
只是想重新定義樣式和模板 - 特別是關閉那個視覺狀態,如果我可以...... – Nicros