如何在WPF中将Viewport3D控件切换到线框显示模式?

4

有没有办法做到这一点?我正在寻找类似于这样的东西:

viewport3dControl.DisplayMode = DisplayMode.Wireframe;

与当前的阴影不同。

或者我必须为每个要显示为线框的对象设置这个吗?如果是这样,该怎么做?

2个回答

3

想要实现这个功能并不像你所希望的那么简单,但是通过使用一些库可以完成。请参考:

具体来说,ModelViewer示例有一个“查看 -> 线框”复选框,可以实现你想要的功能。该示例不大,因此您可以了解如何将其应用到您的情况中。


谢谢,我看到了那个,但它似乎已经有几年没更新了。我不想包含一些没有维护的库。虽然我很惊讶这在普通的 WPF 中很难实现。 - Joan Venge
这是一种技巧(通过记忆):在 OnRender() 中绘制一个2D矩形(一条线),对应于变换后的端点。除了提示之外,您根本不需要使用库。 - Rick Sladkey

-1

同样的答案也发布在这里:

WPF中的线框渲染

我看到很多回复都提到了这个问题的第三方解决方案。

对于一个纯WPF解决方案,我从现有的Model3D创建一个新的Model3D,其中每个面都带有一个孔。即将其分成6个新面,每个“线”的宽度与原始面的大小成比例。

之所以这样做是因为它看起来比固定线宽更好,但如果需要,您可以使用固定线宽。

可选地,在黑色中填充中心孔(组中的单独Model3D),然后您就可以隐藏线条。

对于面中的三个点A0、B0和C0,计算AB、AC和BC的中点。新点A1沿着朝向BC的线的1/20处。重复下一个两个点B1和C1。

“线”的6个新面由以下组合表示:

A0, B0, B1
A0, B1, A1
A0, C1, C0
A0, A1, C1
B0, C0, C1
B0, C1, B1

在另一个模型中添加A1、B1和C1以进行隐藏线消除变体。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接