C# Viewport3D的绘制事件

C# Viewport3D的绘制事件,c#,wpf,render,paint,C#,Wpf,Render,Paint,如何更改Viewport3D的渲染?是否有类似winforms中的绘画活动 我想在屏幕空间(在视口中)而不是世界空间(在视口中)中绘制一些内容。为什么?因为它太重,无法在viewport3D中直接绘制文本和线条。我有数十万条线和文字要画。即使我使用了很好的库,它也会减慢绘图过程并极大地扩展内存 另外,我想在viewport3D的表面上绘制一个矩形,而不考虑内容。(例如,我不想计算应该在哪里绘制矩形,这样它就不会位于对象的后面。) 因此,如果我知道如何在viewport3D的表面上绘图,这将是一个

如何更改Viewport3D的渲染?是否有类似winforms中的绘画活动

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

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


因此,如果我知道如何在viewport3D的表面上绘图,这将是一个很好的解决方案。

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

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

您可以重写OnRender(DrawingContext-DrawingContext)方法。就这样?哦,好的,我现在要试试这个。它有效:)谢谢:)我怎样才能对你的答案投赞成票?我已经把它作为答案了。请标记并提高投票答案提高投票要求15分的声誉。。。对不起:是的,还是。。向上投票我的问题,我可以向上投票你的回答:)你可以通过点击勾号来标记为答案。最大的问题是,如果我希望在屏幕位置绘制的对象随相机移动,我必须在相机更改时使视口无效。所以它使用了两倍的GPU。嗯