我对所有这些魔法有点不清楚。据我了解,依赖属性是从 DependencyObject 继承的,因此会存储值:
- 如果分配了值,则在实例本身中(在本地字典中)
如果未指定值,则从指向父元素的链接中获取。
protected object GetValue(string propertyName) { if (LocalValues.ContainsKey(propertyName)) { return LocalValues[propertyName]; } return Parent.GetValue(propertyName); }
我在这方面是正确的吗?
我也不明白附加属性的值存储在哪里?
Control.FontSizeProperty = TextElement.FontSizeProperty.AddOwner(
typeof(Control), new FrameworkPropertyMetadata(SystemFonts.MessageFontSize,
FrameworkPropertyMetadataOptions.Inherits));
附加属性上的 AddOwner 方法调用是否将值分配给实例字段?这种情况什么时候发生,价值又去哪儿了?
谢谢!