0

我经常感叹 WPF ToggleButton 没有 AlternateContent 和 AlternateContentForeground 的属性这一事实。我很好奇创建带有附加属性的 DependencyObject 或从 ToggleButton 派生自定义控件是否有任何优势?

我的假设是,如果附加属性可用于多个控件,则它们是有利的。因此,在我的情况下,我倾向于派生控件,因为这些属性是切换按钮所独有的。

4

2 回答 2

1

AttachedProperties 在以下几种情况下很有用:

  1. 您希望将它们用作与另一个控件交互的事物的附加行为,例如 Grid.Row
  2. 您想向控件添加属性,但又不想强制让获得该行为的客户端从您的特定类型派生。例如,如果您在 Buttons 而不是 ToggleButton 上具有您想要的行为,那么您可能希望采用这种方法,以便您可以在 ToggleButton 和 RadioButton 上获得新属性,而不是强迫某人从 MyCoolButton 派生。

对于您所描述的,仅将 ToggleButton 子类化似乎是有道理的。

于 2013-05-08T23:30:45.910 回答
0

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

于 2013-05-09T07:28:48.973 回答