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