在MSDN和其他资源上进行了大量搜索之后,我基本上发现“某些”依赖属性确实支持类似于WPF的属性值继承。但是,据我所知,尚没有确定哪些属性可以定义哪些属性的明确列表。例如,我知道字体属性;但是HorizontalContentAlignment却没有。我还在该论坛中看到了另一个线程,该线程指出DP优先级列表不包括值继承(http://msdn.microsoft.com/en-us/library/cc265148(VS.95).aspx#listing)。
此外,似乎甚至无法将可继承元数据应用于任何自定义DP,因此Silverlight框架似乎已针对特定属性对其进行了自定义修改。我需要确切地知道哪些依赖属性确实支持属性值继承。如果我错过了一篇关于此主题的明显文章或主题,那么我深表歉意,但我在搜索中已经非常透彻。
谢谢。
最佳答案
您提到Font属性支持此功能,因此我对反射器做了一些挖掘,发现这很有趣:
文字块
public static readonly DependencyProperty FontSizeProperty = DependencyProperty.RegisterCoreProperty(0x40003714, typeof(double));
控制
public static readonly DependencyProperty FontSizeProperty = DependencyProperty.RegisterCoreProperty(0x80003714, typeof(double));
排队
public static readonly DependencyProperty FontSizeProperty = DependencyProperty.RegisterCoreProperty(0x3714, typeof(double));
因此,所有这三个类都定义了FontSizeProperty,并且所使用的id看起来非常相似,好像第一位只是某种标志。因此,也许在幕后进行了一些事情,这些事情允许您所谓的属性继承,因为框架可能会在这些类似的dp id之间传递值。
关于silverlight - 属性(property)值(value)继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/508763/