2016-12-07 80 views
0

我試圖覆蓋擴展器的IsExpanded屬性的默認值。WPF擴展器覆蓋元數據IsExpandedProperty

到目前爲止我的代碼,它不工作:

static MyExpander() 
{ 
    IsExpandedProperty.OverrideMetadata(typeof(MyExpander), new FrameworkPropertyMetadata(true)); 
} 

儘管如此,屬性仍設置爲false(這我檢查一樣,可以肯定的):

public MyExpander() 
{ 
    System.Console.WriteLine($"IsExpanded default value is: {IsExpandedProperty.DefaultMetadata.DefaultValue}"); 
} 

編輯:沒關係,我只是愚蠢的,我確實在風格設置屬性爲false ...現在一切正常,謝謝你的答案無論如何:)謝謝你的答案:)

回答

0

檢查實際值而不是DefaultValueDefaultMetadata

public MyExpander() 
{ 
    Debug.WriteLine($"IsExpanded value: {IsExpanded}"); 
} 

從MSDN上的DependencyProperty.DefaultMetadata Property頁面上的備註部分:

默認元數據是可用的屬性的元數據,以 特定對象或由明確的寄存器或 OverrideMetadata調用提供的替代元數據的派生類型的對象。

顧名思義,DefaultMetadata不會返回重寫的元數據。