我有一个带有 Visual C# 的应用程序 WPF(使用 Visual Studio 2010),我想在 WPF 窗口本身上绘制 OpenGL 场景。至于 OpenGL drawinf 本身,我可以在没有问题的情况下绘制它,这意味着我可以从 WPF 主窗口本身创建 GL 渲染上下文(没有额外的 OpenGL 控件,WPF 窗口内没有 win32 窗口),使用 GL 命令并使用交换缓冲区(所有这些都是在 dll 中完成的 - 使用 C - 我自己创建的)。但是,例如,当我调整窗口大小时,我会出现烦人的闪烁。我覆盖了 OnRender 方法以使用 opengl 重新绘制,但是在此之后,窗口将使用背景颜色重新绘制。系统很可能会自动重绘它。使用 WindowForms,我可以防止系统自动重绘(将一些 ControlStyles 定义为 true 或 false,例如 UserPaint = true、AllPaintingInWmPaint = true、Opaque = true、ResizeRedraw = true、DoubleBuffer = false),但是,除了将 Opacity 设置为1,我不知道如何用 WPF 做到这一切。我希望在内部没有操作的情况下覆盖 OnRender 可以避免重绘,但不知何故系统仍然绘制背景。
有谁知道如何防止系统重绘窗口?
谢谢你的时间
最佳答案
关于wpf - 如何避免/阻止系统绘制/重绘/刷新/绘制 WPF 窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6536728/