WPF控件继承

Ela*_*lad 7 wpf inheritance

我在博客中读到了以下句子:

WPF的第一条规则:
避免控制继承.

我在其他地方也见过类似的东西.但是,我无法理解逻辑.

此外,我在StackOverflow中看到了涉及继承WPF控件的建议(例如,参见我之前问题的回复).

我想了解为什么(以及如果)控制继承应该避免.

Ken*_*art 8

WPF控件"看起来很".换句话说,他们的外表与他们的行为是分开的.通常,您实际上想要自定义外观 - 而不是行为.与Winforms的世界不同,这不需要您继承新控件并覆盖渲染逻辑.相反,您在控件上设置了一些属性,如果无法从其他属性获得所需的外观,则可以覆盖模板本身.

请注意,"避免"就是说.如果可以的话,避免继承.在需要修改行为的情况下,继承可能是最佳选择.