2

使用 RenderTargetBitmap.Render 调用渲染 Viewport3D 似乎会导致 Viewport3D 不再更新其视觉内容。尽管如此,交互操作仍然有效,例如悬停和单击。

我创建了一个示例,其中我有一个包含按钮的视口。然后我使用 RenderTargetBitmap 渲染视口。在此渲染之后,我尝试切换按钮的可见性,但按钮的视觉效果不再更新,这是出乎意料的。然而,当它被折叠时,不可能像您期望的那样单击该按钮。将可见性切换回可见允许我再次单击该按钮,因此似乎只有视觉效果不再正确处理。

似乎视口丢失了它应该使用的正确缓冲区,并且无论如何都继续显示旧版本。我希望视口像在渲染调用之前一样不断更新其视觉效果,有什么我在这里遗漏的想法吗?

我已经在 bitbucket 上上传了演示器,源文件可以在这里查看: Sourcecode

演示器也可用作 VS2010 解决方案: 下载解决方案

如果您需要任何其他信息,请告诉我,我会尽可能详细地回答您的问题。

4

1 回答 1

0

我遇到了类似的问题。在调用 RenderTargetBitmap 的 Render() 之后,我注意到,例如,应用于视口内的视觉效果的任何颜色更改都没有显示出来。正如您所说,单击、旋转、悬停等交互操作仍在工作。

在我的应用程序中,正在呈现的视口本身就位于网格内部(即网格的子级)。我发现,如果在调用 RenderTargetBitmap 的 Render() 方法之后,我删除了 Viewport,然后将 Viewport 读取到 Grid 的“Children”列表中,则 Viewport 中的视觉效果会像调用 Render( )。

于 2014-09-19T14:35:59.060 回答