【问题标题】:ContentPresenter Not Always Working in Silverlight TemplateContentPresenter 并不总是在 Silverlight 模板中工作
【发布时间】:2015-04-25 20:18:01
【问题描述】:

当我们通过 ControlTemplate 自定义某些控件时,ContentPresenter 不会按应有的方式呈现控件。这是为什么呢?

【问题讨论】:

  • 那是因为有问题。
  • 这不是答案!为什么投反对票?
  • 好的,抱歉,这没有帮助。我真的很想帮忙。但我不能。您声明在更改 ControlTemplate 后,某些 ContentPresenter 的内容不会按预期呈现。您既没有提供受影响的 ControlTemplate 之一的相关部分,也没有提供行为不端的 ContentPresenter,因此我没有机会查看其属性是如何设置的(例如,查看是否设置了额外的 ContentTemplate),您没有甚至没有澄清“不按应有的方式渲染”的确切含义:它是否只渲染部分/剪辑?一点也不?这个问题太模糊了。
  • “不呈现控件的意思正是”。我说的符合我的问题。在某些情况下,ContentPresenter 似乎没有做好它的工作,所以我问,它的工作要求是什么?
  • 好吧,与我们分享其中一个案例。我知道可能是什么问题。我不想拖钓,当我认为 OP 不必要地保留相关信息时,我往往会变得相当尖刻。

标签: xaml silverlight templates controltemplate contentpresenter


【解决方案1】:

如果您让我看到受影响的 xaml 标记,那真的会更容易。我对可能是什么问题的想法是基于 ContentPresenter 相当肮脏的默认行为:当它在 ContentControl 的 ControlTemplate 中使用时,它会自动绑定到 Content 和 ContentTemplate 属性。但它不会对任何其他控件类型执行此操作。因此必须明确地完成。

您是否设置了这些绑定:

<ControlTemplate ...>
    ...
    <ContentPresenter Content="{TemplateBinding ...}"
      ContentTemplate="{TemplateBinding ...}" />
    ...
</ControlTemplate>

【讨论】:

  • 不起作用,因为 RadGridView 没有 Content 属性(它不是 ContentControl)。
  • 您是否计划在某一天透露您正在绑定您的 ContentPresenter 的哪些属性?
猜你喜欢
  • 1970-01-01
  • 2011-08-27
  • 2017-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-11
相关资源
最近更新 更多