【WPF】 ContentPresenter 控件

概览

 ContentPresenter用法

ContentPresenter 作为占位符表示“将实际内容放在这里”。 使用ContentPresenter 必须设置内容控件模板的tartgettype

所有的内容控件都包含ContentPresenter元素---它是表示“在此插入内容”的标记器,告诉wpf在何处保存内容

public System.Windows.DataTemplate ContentTemplate { get; set; }

可以在控件内部的 ControlTemplate 、DataTemplate使用,也可以在控件外不xaml中使用。

当你在ContentControl的ControlTemplate中放置一个ContentPresenter时,它会自动显示模板控件的Content。这意味着如果你将你的控制模板的目标类型设置为Button, ContentPresenter的Content属性会隐式绑定到使用该控制模板的按钮的Content。例如以下例子:

 

 

 ContentPresenter.ContentSource

ContentPresenter.ContentSource 指明ContentPresenter控件显示内容的来源,默认来源与 ContentPresenter.Content属性。  ContentPresenter.ContentSource只有在控件模板中起作用,当该控件放在  ControlTemplate 中时,ContentPresenter.ContentSource可指向控件模板所依赖 MyControl的其他属性; 例如,如果一个MyControl控件,他的ControlTemplate中包含一个ContentPresenter ,我们就可以修改ContentPresenter.ContentSource (默认指向Content),让他指向MyControl控件其他依赖属性MyProperty1

<ControlTemplate TargetType="MyControl" >
    [...]
       <ContentPresenter ContentSource="MyProperty1" />
    [...]
</ControlTemplate>

 

ContentPresenter 的内容将收到 的值MyProperty1

请注意,如果属性名称为Content,则无需指定,ContentSource因为它是默认值。

 

 ContentPresenter.Content

 

    <ContentPresenter Grid.Column="1" Grid.Row="1"  Content="{Binding PhonogramMap50}"  ></ContentPresenter>

 

ContentStringFormat

  <ContentPresenter ContentStringFormat="c" Content="{Binding TotalSales}"/>

 

 

posted @ 2022-08-13 10:06  小林野夫  阅读(6740)  评论(6编辑  收藏  举报
原文链接:https://www.cnblogs.com/cdaniu/