ContentControl WPF不显示内容

时间:2014-05-05 12:47:47

标签: c# wpf metafile

我已将项目从https://silverlightcontrib.codeplex.com/转换为WPF(github https://github.com/jogibear9988/silverlightcontrib)以获得WPF中的EMF / WMF元文件支持。

现在我的Probjem是,EMF类使用ContentControl来显示它的内容。内容也已设置,但不显示任何内容。如果我在WPF-Inspector中检查它,我发现EMF Control的内容列在" Logical-Tree"但不是在视觉!任何人都可以帮我解决这个问题吗?

Fork的当前状态是在线(如果有人查看代码!)

如果我看着窥探一切似乎都没问题:

enter image description here

你看,Content Presenter有一个Content set和Filled,但它没有进入Visual Tree ......

以下是WPF Inspector的逻辑树: enter image description here

在这里视觉: enter image description here

3 个答案:

答案 0 :(得分:1)

两个最有可能的问题是,您的ContentControl使用的ControlTemplate没有ContentPresenter(在一个专门使用默认Content属性之外的问题上)或者它使用空DataTemplate作为其ContentTemplate。您应该能够通过在运行时检查来检查其中任何一个。

答案 1 :(得分:1)

我对Silverlight不是很熟悉,但在WPF中,当你覆盖MeasureOverride(...)ArrangeOverride(...)时,你必须测量并安排对照组的孩子,以便他们可以测量和安排他们的孩子和等等。 在您的情况下,您必须在base.MeasureOverride(...)类中包含从base.ArrangeOverride(...)继承的EmfContentControl的来电。

答案 2 :(得分:0)

我还没有想到这一点,但这与尺寸有关。在Snoop中,它显示的RenderSize为0,0,在检查器中,实际高度/宽度也显示为0 - 您可以看到红色高亮检查器在元素周围绘制的是一个小点而不是一个矩形。我猜测EMF控件中有一些特定于Silverlight的行为,它们没有直接移植到WPF。