2

如果我可以用单个TextBox(如按钮)替换它,或者我可以直接将媒体元素添加到Grid(无论如何)......

ContentPresenter为了什么?有什么优势吗?

4

3 回答 3

5

您通常使用 ContentControl 的 ControlTemplate 中的 ContentPresenter 来指定要添加内容的位置。每个 ContentControl 类型在其默认 ControlTemplate 中都有一个 ContentPresenter。

来自MSDN;所以基本上它是模板中内容的占位符。

于 2011-04-06T05:16:35.713 回答
5

您并不总是需要 ContentPresenter。它充当一个占位符,可以有效地托管您分配给其 Content 属性的任何内容。如果您在给定控件/页面上有一个区域可以保存不确定类型的动态内容,则 ContentPresenter 是保存该空间的有效方法。

它还经常用于模板、自定义控件等。在您开始接触一些相当高级的东西之前,您可能不会真正使用它。

您可以做的一种很酷的事情是将 ContentPresenter 的 Content 属性绑定到 UserControl 类型的 DependencyProperty,然后如果您将该 DependencyProperty 设置为等于任何 UserControl(例如您在 ViewModel 中新建的一个),它会出现在那个地方。

于 2011-04-06T05:17:06.010 回答
0

它由ContentControl使用。在ContentControl的模板中,ContentPresenter指示为实际内容将被放置的占位符。

来自 MSDN,

显示ContentControl的内容。

于 2011-04-06T05:18:16.600 回答