【问题标题】:OpenGL control overlays WPF elementsOpenGL 控件覆盖 WPF 元素
【发布时间】:2015-04-14 13:30:17
【问题描述】:

我有使用 DevExpress 控件库在 WPF 中开发的富客户端应用程序。

在其中一个面板中,我使用 OpenTK(OpenGL 的 .net 包装库)渲染了一些视觉元素。

问题是,OpenGL 渲染表面似乎是应用程序中的 Top Most。因此,如果我将一个面板移到另一个面板上,OpenGL 的控件会覆盖 WPF 元素:

我不确定这是 WPF 的普遍问题,还是 DevExpress 或 OpenTK 的问题。

我想知道,有什么办法可以解决这个问题吗?

编辑:我正在使用 WindowsFormsHost 控件将 OpenTK 的 GLControl 放入 WPF UserControl。我正在使用.Net 4.5。

【问题讨论】:

  • 听起来和看起来像是空域问题。你是如何使用 OpenTK 的?通过WindowsFormsHost ?
  • @Roel van Westerop:是的。我在 UserControl 中有 WindowsFormsHost,在 WindowsFormsHost 中有 GLControl。

标签: c# wpf opengl devexpress opentk


【解决方案1】:

使用 WindowsFormsHost 时,DockLayoutManager 具有 known limitations。这些限制对于 WPF 平台是普遍存在的,它们由 HwndHost 的当前实现提供支持(有关详细信息,请参阅 WPF and Win32 Interoperation MSDN 文章)。

您可以尝试通过将DockLayoutManager.EnableWin32Compatibility property 设置为true 并将DockLayoutManager.FloatingMode 属性设置为FloatingMode.Desktop 来克服与您的OpenGL (WinForms) 控件重叠的停靠面板可能出现的问题。

【讨论】:

  • 非常感谢。明天我会验证的。
  • 很高兴听到我的帮助很有帮助 ;-)
猜你喜欢
  • 2011-12-26
  • 2014-03-28
  • 2019-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-16
  • 1970-01-01
  • 2018-04-12
相关资源
最近更新 更多