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

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

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

有一些可以解决此问题的技巧,但是它们看起来都很脏。
有没有一种合适的方法可以直接在WPF中绘制OpenGL而又不会与Windows Forms混淆? (我不知道为什么您不能直接在WPF中使用它)。

简而言之:在WPF应用程序中是否存在用于在OpenGL上绘制UI的已知解决方案?

最佳答案

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

关于c# - 在Windows桌面应用程序中通过OpenGL窗口显示WPF控件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30398227/

10-17 01:15