Viewport3D 的绘制事件

Paint Event of Viewport3D

如何更改 Viewport3D 的渲染?有没有类似winforms的Paint Event?

我想在屏幕 space(在视口中)而不是在世界 space(在视口中)中绘制一些内容。为什么?因为直接在viewport3D中绘制文字和线条太重了。我有数十万行和文字要绘制。即使我使用好的库,它也会减慢绘图过程并显着增加内存。

另外,我想在 viewport3D 的表面上绘制一个矩形,而不考虑内容。 (例如,我不想计算我应该在哪里绘制矩形,这样它就不会出现在对象后面。)

所以在 viewport3D 的表面上绘图将是一个很好的解决方案,如果我知道如何去做的话。

您可以覆盖 Viewport3D 的 OnRender 方法。参考下面的代码。

 class MyViewPort : Viewport3D
{
    protected override void OnRender(DrawingContext drawingContext)
    {
        base.OnRender(drawingContext);
    }
}