2014-07-18 72 views
0
public double FontSize 
{ 
    get { return (double)GetValue(FontSizeProperty); } 
    set { SetValue(FontSizeProperty, value); } 
} 
public static readonly DependencyProperty FontSizeProperty = 
    TextElement.FontSizeProperty.AddOwner(typeof(OutlineTextBlock), 
    new FrameworkPropertyMetadata(XXX, FrameworkPropertyMetadataOptions.AffectsRender)); 

我不想指定XXX,並且沒有覆蓋只能指定AffectsRender相關屬性 - 不指定默認值的元數據選項

如果我不喜歡這個

new FrameworkPropertyMetadata() 

那麼物業將採取默認值從某處。

如何指定AffectsRender沒有默認值?

回答

2

請嘗試以下

new FrameworkPropertyMetadata { AffectsRender = true; } 

如果不指定一個默認值,基本PropertyMetadata沒有得到如正在修改的默認值標記。這可以確保合併元數據時,會使用原始默認值,但會添加AffectsRender標誌。

+0

我覺得很蠢。謝謝。 – Sinatr

+0

@Sinatr不要覺得愚蠢。 Afaik在MSDN上沒有一個例子顯示了這種創建FrameworkPropertyMetadata實例的方式。事實上,這個類有很多(11)構造函數,很容易讓你認爲你必須使用其中的一個。 – Clemens

+0

Yeh @Sinatr,我從來不知道你能做到這一點,我發誓我過去看過它,我們一直在學習:) – Lukazoid