1

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

现在我的问题是,EMF 类使用 ContentControl 来显示它的内容。内容也已设置,但没有显示任何内容。如果我在 WPF-Inspector 中检查它,我会看到 EMF 控件在“逻辑树”中列出了它的内容,但在视觉中没有!谁能帮我解决这个问题?

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

如果我查看窥探一切似乎都很好:

在此处输入图像描述

你看,内容展示器有一个内容集和填充,但它没有进入可视化树......

这是 WPF Inspector 的逻辑树: 在此处输入图像描述

这里是视觉: 在此处输入图像描述

4

3 回答 3

1

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

于 2014-05-05T13:37:18.120 回答
1

我对 Silverlight 不是很熟悉,但是在 WPF 中,当您覆盖时MeasureOverride(...)ArrangeOverride(...)您必须测量和排列控件的孩子,以便他们可以测量和排列他们的孩子等等。在您的情况下,您必须包含对继承自的类的调用base.MeasureOverride(...)和调用。base.ArrangeOverride(...)EmfContentControl

于 2014-05-12T14:29:32.913 回答
0

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

于 2014-05-09T02:43:26.813 回答