WPF程序里嵌入的OpenGL子进程窗口显示异常

光泽 王 0 信誉分
2024-12-19T03:24:25.52+00:00

在.Net6编写的WPF主程序(MainWindow.exe)里,采用MahApps.Microsoft.DwayneNeed组件,通过AirspaceMode="Redirect"与<WindowsFormsHost>组合方式(参见:https://blog.csdn.net/weixin_33881041/article/details/94560446)嵌入的OpenGL程序(glDemo.exe)。

1)glDemo程序选择集成显卡,启动MainWindow时嵌入的glDemo显示正常;

2)glDemo程序选择高性能显卡,启动MainWindow时嵌入的glDemo显示异常;

3)远程桌面访问时,采用“2)”的方式启动MainWindow,嵌入的glDemo显示正常;
4)glDemo程序选择高性能显卡,直接启动glDemo显示正常;
5)如果在xaml里去掉DwayneNeed组件,直接使用<WindowsFormsHost>托管glDemo,启动MainWindow时嵌入的glDemo显示正常,但是会出现空域问题(悬浮WPF控件被压盖)。

请问如何配置和调整代码与环境,可以在“2)”的环境下也可以正常显示glDemo,不压盖WPF控件。

代码压缩包(将xml扩展名改为rar): OpenGLDemo(RAR).xml

以下为实验1和实验2的运行截图。 异常

正常

Windows Presentation Foundation
Windows Presentation Foundation
.NET Framework 的一部分,它提供统一的编程模型,用于在 Windows 上构建业务线桌面应用程序。
131 个问题
Windows 硬件性能
Windows 硬件性能
Windows: Microsoft 操作系统系列,可跨个人计算机、平板电脑、笔记本电脑、手机、物联网设备、独立混合现实头戴显示设备、大型协作屏幕和其他设备运行。硬件性能: 交付/提供硬件或硬件系统,或调节/调整硬件或硬件系统。
31 个问题
0 个注释 无注释
{count} 票

你的答案

问题作者可以将答案标记为“接受的答案”,这有助于用户了解已解决作者问题的答案。