在Windows桌面应用程序中显示WPF对OpenGL窗口的控制

时间:2015-05-22 13:39:02

标签: c# c++ wpf opengl opengl-es

我们正在开发具有全屏OpenGL图形的Windows桌面应用。现在我们想在OpenGL上显示一堆控件(箭头,按钮等)。事实证明这很难做到。

大多数教程都建议使用WindowsFormsHost进行OpenGL渲染,我们这样做了:http://www.codeproject.com/Articles/23736/Creating-OpenGL-Windows-in-WPF

不幸的是,现在我们无法在WindowsFormsHost上绘制WPF控件,在互联网上也有很多讨论:WindowsFormsHost is always the most top from WPF element Render WPF control on top of WindowsFormsHost

有一些黑客可以解决这个问题,但它们看起来都很脏。 是否有正确的方法直接在WPF中绘制OpenGL而不会弄乱Windows窗体? (我只是不知道为什么你不能直接在WPF中使用它。)

简而言之:是否有一种已知的解决方案,用于在WPF应用程序中通过OpenGL绘制UI?

1 个答案:

答案 0 :(得分:0)

创建一个wpf窗口。 在背景中渲染您的opengl视口。 获取opengl视口的快照并在WPF中显示图像。 将WPF图像上的所有UI事件传输到opengl视口。