c# – 将Model3DGroup的多个实例添加到ModelVisual3D

我正在努力在
WPF中构建一个最终应该是三维桁架的图形模型.我正在构建一个单个对象作为Model3DGroup.然后我将Model3DGroup添加到ModelVisual3D.

目前,我在我的* .xaml.cs文件中声明私有ModelVisual3D mGeometry;在顶部.然后,创建一个新的Model3DGroup,其中添加了几个点三角模型.然后,使用以下代码将其添加到ModelVisual3D:

mGeometry.Content = prism; // where prism is the Model3D Group with added triangle points
mGeometry.Transform = new Transform3DGroup();
this.viewport.Children.Add(mGeometry);

我的问题是:如何将Model3DGroup的多个不同实例添加到一个ModelVisual3D?我最终想要构建一个由多个不同的Model3DGroup组成的桁架并将其显示在屏幕上.

我不反对改变我的做法,因为我不确定最好的方法.目前,我只能显示一个对象.

最佳答案 每个ModelVisual3D只能包含1个Model3D,但也可以包含其他Visual3D.在这种情况下,您只需将更多ModelVisual3D添加到ModelVisual3D的Children属性中:

mGeometry.Content = prism;
var moreModelVisual3D = new ModelVisual3D();
moreModelVisual3D.Content = prism2; //your other Model3DGroup
mGeometry.Children.Add(moreModelVisual3D);
//create more if you want ...

另请注意,每个Model3DGroup都可以包含其他Model3DGroups.如果您认为可以在您的情况下应用,请改为考虑它.

点赞