Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ContentControl WPF不显示内容_C#_Wpf_Metafile - Fatal编程技术网

C# ContentControl WPF不显示内容

C# ContentControl WPF不显示内容,c#,wpf,metafile,C#,Wpf,Metafile,我已经将项目从转换为WPF(github),以在WPF中获得EMF/WMF元文件支持 现在我的问题是,EMF类使用ContentControl来显示它的内容。内容也已设置,但不显示任何内容。如果我在WPF检查器中检查它,我会看到EMF控件的内容列在“逻辑树”中,而不是列在可视化视图中!有人能帮我解决这个问题吗 Fork的当前状态是联机的(如果有人查看代码!) 如果我看看史努比,一切似乎都好: 你看,内容展示者有一个内容集并已填充,但它没有进入视觉树 以下是WPF Inspector的逻辑树:

我已经将项目从转换为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,但内容仍然没有呈现。。。