Viewport3D的Paint事件

时间:2015-03-31 20:25:57

标签: c# wpf render paint

如何更改Viewport3D的渲染?是否有类似winforms的Paint事件?

我想在屏幕空间中绘制一些内容(在视口上)而不是在世界空间中(在视口中)。为什么?因为它太重了,无法直接在viewport3D中绘制文本和线条。我有数十万行和文字可供绘制。即使我使用好的库,它也会减慢绘图过程并使内存膨胀。

另外,我想在viewport3D的表面上绘制一个矩形而不管内容如何。 (例如,我不想计算绘制矩形的位置,以免它对物体产生任何影响。)

因此,如果我知道如何操作,那么在viewport3D的表面上绘制将是一个很好的解决方案。

1 个答案:

答案 0 :(得分:1)

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

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