本文内容翻译自微软官网部分内容
https://docs.microsoft.com/en-us/dotnet/desktop/wpf/advanced/attached-properties-overview?view=netframeworkdesktop-4.8
1、附加属性是XAML的概念,在WPF中,附加属性概念就是没有传统的wrapper属性的依赖属性;
2、为什么要使用附加属性
使用附加属性的目的是,允许子元素给父元素的属性设置唯一值。一个场景就是,UI子元素告知UI父元素,子元素自己应该如何在父元素中展示,例如DockPanel.Dock属性。这个属性被创建为一个附加属性,因为它被设计为由被包含的子元素设置值而不是由DockPanel自身设置。
3、在XAML中设置附加属性
<DockPanel> <CheckBox DockPanel.Dock="Top">Hello</CheckBox> </DockPanel>
4、附加属性在WPF中
在WPF中,大多数的UI相关的附加属性是由依赖属性实现的。附加属性是XAML概念,但是依赖属性是在WPF中的概念。因为附加属性就是依赖属性,所以附加属性也支持依赖属性的元数据、从元数据获取默认值等。
5、所有者如何使用附加属性
任何一个对象都可以主动设置附加属性,而不是由系统自动设置,这说明设置附加属性可以立即见到可视化的效果,或者对象可能永远不会设置附加属性。定义附加属性的类通常使用以下方法之一:
6、父元素定义附件属性的例子
DockPanel 定义的 DockPanel.Dock 属性就是附加属性
7、在代码中使用和设置附加属性
DockPanel myDockPanel = new DockPanel(); CheckBox myCheckBox = new CheckBox(); myCheckBox.Content = "Hello"; myDockPanel.Children.Add(myCheckBox); DockPanel.SetDock(myCheckBox, Dock.Top);
原文:https://www.cnblogs.com/carrothlb/p/14425321.html