我经常哀叹WPF ToggleButton没有AlternateContent和AlternateContentForeground的属性。我很好奇是否有任何优势,以创建附加属性的DependencyObject,或从ToggleButton派生自定义控件?
我的假设是,如果附加属性在多个控件上可用,则它们是有利的。所以在我的情况下,我倾向于一个派生控件,因为这些属性是唯一的togglebutton。
AttachedProperties在以下几个场景中很有用:
- 你想使用它们作为附加行为的东西,与另一个控件,如网格交互。行
- 你想给控件添加属性,但你不想强迫客户端从你的特定类型中获得该行为。例如,如果你想在按钮上而不是在ToggleButton上有一个行为,那么你可能想要使用那个方法,这样你就可以在ToggleButton和RadioButton上获得那个新属性,而不是强迫别人从MyCoolButton中派生。
对于你所描述的只是子类化ToggleButton似乎是有意义的。
实际上,这种样式应该通过触发器完成,或者使用VisualStateManager.