【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}"/>