【发布时间】:2012-08-04 20:33:37
【问题描述】:
<ContentControl Content="Test">
<ContentControl.ContentTemplate>
<DataTemplate>
<Border>
<ContentPresenter />
</Border>
</DataTemplate>
</ContentControl.ContentTemplate>
</ContentControl>
它会抛出 stackoverflow 异常。但是,如果我使用除 ContentPresenter 之外的任何其他控件,它也可以正常工作,即使 ItemPresenter 也可以工作。我知道将 ContentPresenter 放在那里没有任何意义,只是为了了解知识。为什么它会引发 StackOverFlow 异常,以及为什么 Intellisense 显示它可以添加(我的意思是它出现在 Intellisense 中,这意味着在语法上它没有错 ContentPresenter 在那里)。任何帮助都将受到高度重视。还是 Wpf 中的任何缺陷。
【问题讨论】:
-
你可以不指望任何事情智能感知告诉你。
-
我将您的问题简化为最一般的情况。
-
这里有同样的问题。你为什么说“在那里有 ContentPresenter 没有任何意义”。当您不想重新创建整个表示,而只是在周围添加一些东西时,这很有意义。顺便说一句,解决方案 ContentStringFormat="{}{0}" 有效,但有点棘手。 ContentPresenter 不应该优雅地处理这种情况,通过设计防止递归吗?
标签: c# wpf templates xaml wpf-controls