【问题标题】:Paint Event of Viewport3DViewport3D 的绘制事件
【发布时间】:2015-06-05 08:09:09
【问题描述】:

如何更改 Viewport3D 的渲染?有没有像winforms中的Paint Event?

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

另外,无论内容如何,​​我都想在 viewport3D 的表面上绘制一个矩形。 (例如,我不想计算应该在哪里绘制矩形,这样它就不会成为对象。)

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

【问题讨论】:

  • 你可以重写 OnRender(DrawingContext drawingContext) 方法。
  • 仅此而已?哦,好的,我现在就试试这个。
  • 它有效 :)) 谢谢 :) 我怎样才能支持你的答案?
  • 我已将其作为答案。请标记并支持答案

标签: c# wpf render paint


【解决方案1】:

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

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

【讨论】:

  • 投票需要 15 的声誉......对不起:s 或者.. 投票我的问题,我可以投票你的回答:)
  • 您可以通过单击对勾标记为答案。
  • 最大的问题是,如果我希望在屏幕位置绘制的对象随着相机移动,我必须在相机改变时使视口无效。所以它使用两倍的 GPU。嗯
猜你喜欢
  • 2012-04-03
  • 1970-01-01
  • 2019-10-05
  • 1970-01-01
  • 1970-01-01
  • 2018-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多