附加属性与自定义控件

时间:2013-05-08 23:19:33

标签: wpf custom-controls togglebutton attached-properties dependencyobject

我经常抱怨WPF ToggleButton没有AlternateContent和AlternateContentForeground的属性这一事实。我很好奇是否有创建带附加属性的DependencyObject或从ToggleButton派生自定义控件有什么好处?

我的假设是,如果附加属性可用于多个控件,则它们是有利的。所以在我的情况下,我倾向于派生控件,因为这些属性对于togglebutton是唯一的。

2 个答案:

答案 0 :(得分:0)

AttachedProperties在几个场景中很有用:

  1. 您希望将它们用作与另一个Control交互的内容的附加行为,例如Grid.Row
  2. 您希望向控件添加属性,但不希望强制从您的特定类型派生获取该行为的客户端。例如。如果你在Buttons而不是ToggleButton上有你想要的行为,那么你可能想要采用这种方法,这样你就可以在ToggleButton和RadioButton上获得新属性,而不是强迫某人从MyCoolButton派生。
  3. 对于你所描述的内容,只是对ToggleButton进行子类化似乎是有道理的。

答案 1 :(得分:0)

实际上,这种样式应该使用触发器或使用VisualStateManager来完成。