WPF中的自定义控件与自定义行为

时间:2017-01-13 06:04:35

标签: wpf custom-controls

自定义控制和自定义行为之间有什么区别?

应使用自定义控件的位置以及自定义行为的位置。以什么方式最好地使用它们?

3 个答案:

答案 0 :(得分:2)

行为部分功能封装到可重用的组件中。

自定义控件比自定义行为更多工作(白盒与黑盒子) 您必须执行一些自定义控件,例如访问受保护的成员。

答案 1 :(得分:2)

行为扩展了控制功能

自定义控件自定义Control的视觉效果

答案 2 :(得分:2)

可以使用行为来扩展控件的功能,以执行无法自行执行的操作,而无需修改或重新实现整个控件。

例如考虑WPF中的内置TreeView控件。它有一个只读的SelectedItem属性,这意味着您不能将其双向绑定到视图模型的属性。如果你不想从头开始实现你自己的自定义TreeView控件 - 你可能不会这样做 - 你可以通过实现设置源属性值的自定义行为来解决这个问题每当目标属性的值发生变化时,反之亦然。有关此内容和示例的详细信息,请参阅以下博客文章:https://blog.magnusmontin.net/2014/01/30/wpf-using-behaviours-to-bind-to-readonly-properties-in-mvvm/

以下文章还应该对附加的behvaiours提供一个很好的介绍:https://www.codeproject.com/Articles/28959/Introduction-to-Attached-Behaviors-in-WPF

因此,行为基本上是一段代码,可以通过附加属性附加到视图的XAML标记中的某个元素,并为此元素添加其他功能。

控件是一个UI组件,它封装了一些功能并具有一个模板,例如Button或ListBox。