2014-07-18 44 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