在控件模板和为其提供支持的代码之间又一个隐含约定.如果使用自定义控件模板替代控件的标准模板,就需要确保新模板能够满足控件的实现代码的所有需要. 在简单控件中,这个过程比较容易,因为对模板几乎没有(或完全没有)什么真正的需求.对于复杂控件,问题就显得有些微妙了,因为控件的外观和实现不可能完全相互独立的.对于这种情况,控件需要对其可视化显示做出一些假设,而不管曾经被设计的多好. 在前面已经看到了控件模板的这种需求的两个例子,占位元素(如ContentPresenter和ItemsPresenter)…