如果我可以用一个TextBox
替换它(就像按钮一样),
或者我可以直接将媒体元素添加到Grid
(无论如何)......
什么是ContentPresenter
?有一些优势吗?
答案 0 :(得分:5)
您通常使用ContentPresenter 在ControlTemplate中 ContentControl指定的位置 内容将被添加。一切 ContentControl类型有一个 ContentPresenter的默认值 的ControlTemplate。
来自MSDN;所以基本上它是模板中内容的占位符。
答案 1 :(得分:5)
您并不总是需要ContentPresenter。它充当占位符,可以有效地托管您分配给其Content属性的任何内容。如果给定控件/页面上的区域可以保存不确定类型的动态内容,则ContentPresenter是保存空间的有效方式。
它还使用了很多模板,自定义控件等等。在你开始进入一些相当高级的东西之前,你几乎不会使用它。
您可以做的一件很酷的事情是将ContentPresenter的Content属性绑定到UserControl类型的DependencyProperty,然后将DependencyProperty设置为等于任何UserControl(就像您在ViewModel中新建的那个或者其他东西) ),它会出现在那个地方。
答案 2 :(得分:0)
由 ContentControl 使用。在 ContentControl 的模板中, ContentPresenter 表示将放置实际内容的占位符。
来自MSDN,
显示 ContentControl 的内容。