为什么我需要SilverLight中的ContentPresenter?

时间:2011-04-06 05:04:52

标签: wpf silverlight user-interface contentpresenter

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

什么是ContentPresenter?有一些优势吗?

3 个答案:

答案 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 的内容。