gpt4 book ai didi

c# - 在 Windows 桌面应用程序中通过 OpenGL 窗口显示 WPF 控件

转载 作者:太空宇宙 更新时间:2023-11-04 13:33:57 25 4
gpt4 key购买 nike

我们正在开发具有全屏 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

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

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

最佳答案

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

编辑:有一种方法可以在 WPF 窗口中承载 win32 窗口。可以引用这个视频https://www.youtube.com/watch?v=JO4uW8Xb230 .如果您使用 GLFW 创建 win32 窗口,则只需使用底层句柄或将窗口强制转换为 WPF 托管窗口所需的 HWND。

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com