C# ContentControl WPF不显示内容
我已经将项目从转换为WPF(github),以在WPF中获得EMF/WMF元文件支持 现在我的问题是,EMF类使用ContentControl来显示它的内容。内容也已设置,但不显示任何内容。如果我在WPF检查器中检查它,我会看到EMF控件的内容列在“逻辑树”中,而不是列在可视化视图中!有人能帮我解决这个问题吗 Fork的当前状态是联机的(如果有人查看代码!) 如果我看看史努比,一切似乎都好: 你看,内容展示者有一个内容集并已填充,但它没有进入视觉树 以下是WPF Inspector的逻辑树: 这里是视觉:C# ContentControl WPF不显示内容,c#,wpf,metafile,C#,Wpf,Metafile,我已经将项目从转换为WPF(github),以在WPF中获得EMF/WMF元文件支持 现在我的问题是,EMF类使用ContentControl来显示它的内容。内容也已设置,但不显示任何内容。如果我在WPF检查器中检查它,我会看到EMF控件的内容列在“逻辑树”中,而不是列在可视化视图中!有人能帮我解决这个问题吗 Fork的当前状态是联机的(如果有人查看代码!) 如果我看看史努比,一切似乎都好: 你看,内容展示者有一个内容集并已填充,但它没有进入视觉树 以下是WPF Inspector的逻辑树:
两个最可能的问题是,您的
ContentControl
正在使用一个没有ContentPresenter
的ControlTemplate
(在一个使用默认Content
属性以外的内容的控件上),或者它正在使用一个空的DataTemplate
作为它的ContentTemplate
。您应该能够通过在运行时进行检查来检查其中任何一项。我还没有完全弄明白这一点,但这与大小有关。在Snoop中,它显示了0,0的渲染,在inspector中,实际高度/宽度也显示为0-您可以看到元素周围的红色高亮显示inspector绘制的是一个小点,而不是一个矩形。我猜EMF控件中有一些特定于Silverlight的行为不会直接移植到WPF。我对Silverlight不是很熟悉,但在WPF中,当您重写MeasureOverride(…)
和ArrangeOverride(…)
您必须测量和安排控制的孩子,以便他们可以测量和安排他们的孩子等等。
在您的情况下,必须在继承自
ContentControl
的Emf
类中包含对base.MeasureOverride(…)
和base.ArrangeOverride(…)
的调用。我使用的是ContentControl的默认模板,没有Datatemplate,所以我认为它应该可以工作?我现在尝试设置ContentPresenter的with&height,但内容仍然没有呈现。。。