ContentPresenter.ContentSource 与内容

发布于 2024-10-31 15:47:18 字数 229 浏览 4 评论 0原文

基本上,我不明白这里真正的区别是什么:

TabItem 的 Microsoft 代码使用:

<ContentPresenter ContentSource="Header" ... />

那么,何时使用 Content 属性而不是(或除了) ContentSource< /代码>?

Basically, I don't understand what the real difference here is:

The Microsoft code for TabItem uses:

<ContentPresenter ContentSource="Header" ... />

So, when would one use the Content property instead of (or in addition to) ContentSource?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

小瓶盖 2024-11-07 15:47:18

此属性仅应在以下情况下使用
ContentPresenter 在模板中。
当模板包含
ContentPresenter 和 ContentSource
设置为“Abc”,内容,
内容模板,以及
ContentTemplateSelector 的属性
ContentPresenter 会自动
别名为 Abc、AbcTemplate 和
分别是 AbcTemplateSelector。
从 .NET 框架开始
版本 3.5 Service Pack 1,设置
ContentSource 为“Abc”也会导致
ContentStringFormat 属性为
别名为 AbcStringFormat。

两个最有用的值
属性是“内容”和“标题”。

(MSDN)

ContentSource显然,为了方便起见,可以一次设置更多属性。


实际上,声明:

<ContentPresenter ContentSource="Header" />

执行以下初始化。

<ContentPresenter Content="{TemplateBinding Header}"
                  ContentTemplate="{TemplateBinding HeaderTemplate}"
                  ContentTemplateSelector="{TemplateBinding HeaderTemplateSelector}"
                  ContentStringFormat="{TemplateBinding HeaderStringFormat}" />

仅当模板化控件上存在依赖属性时,它才分别对每个属性执行此操作。

This property should only be used when
the ContentPresenter is in a template.
When a template contains a
ContentPresenter with ContentSource
set to "Abc", the Content,
ContentTemplate, and
ContentTemplateSelector properties of
the ContentPresenter are automatically
aliased to Abc, AbcTemplate, and
AbcTemplateSelector, respectively.
Beginning with the .NET Framework
version 3.5 Service Pack 1, setting
ContentSource to "Abc" also causes the
ContentStringFormat property to be
aliased to AbcStringFormat.

The two most useful values for this
property are "Content" and "Header".

(MSDN)

ContentSource apparently sets more properties at once for convenience.


Practically, The declaration:

<ContentPresenter ContentSource="Header" />

Performs the following initialization.

<ContentPresenter Content="{TemplateBinding Header}"
                  ContentTemplate="{TemplateBinding HeaderTemplate}"
                  ContentTemplateSelector="{TemplateBinding HeaderTemplateSelector}"
                  ContentStringFormat="{TemplateBinding HeaderStringFormat}" />

It does this for each property separately only if the dependency property exists on the templated control.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文