相关属性 - 不指定默认值的元数据选项
问题描述:
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
没有默认值?
答
请尝试以下
new FrameworkPropertyMetadata { AffectsRender = true; }
如果不指定一个默认值,基本PropertyMetadata
没有得到如正在修改的默认值标记。这可以确保合并元数据时,会使用原始默认值,但会添加AffectsRender
标志。
我觉得很蠢。谢谢。 – Sinatr
@Sinatr不要觉得愚蠢。 Afaik在MSDN上没有一个例子显示了这种创建FrameworkPropertyMetadata实例的方式。事实上,这个类有很多(11)构造函数,很容易让你认为你必须使用其中的一个。 – Clemens
Yeh @Sinatr,我从来不知道你能做到这一点,我发誓我过去看过它,我们一直在学习:) – Lukazoid