我不确定何时应该使用ContentPresenter
而不是ContentControl
(反之亦然)。此刻,我几乎一直在ContentControl
中使用DataTemplate
。什么时候ContentPresenter
是一个更好的选择?为什么呢?
最佳答案
ContentControl
是包含其他元素并具有Content
-property(例如Button
)的控件的基类。ContentPresenter
用于控制模板内部以显示内容。ContentControl
直接使用时(应该用作基类),具有一个控件模板,该模板使用ContentPresenter来显示其内容。
我的经验法则(并非在所有情况下都适用,请根据您的判断):
ControlTemplate
使用ContentPresenter
ControlTemplate
之外(包括DataTemplate
和外部模板)尝试不使用它们中的任何一个,如果需要,您必须更喜欢ContentPresenter
ContentControl
,如果要创建一个托管内容的自定义“无外观”控件,并且无法通过更改现有控件的模板来获得相同的结果(这种情况很少见)。 关于.net - ContentControl和ContentPresenter有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1287995/