C# 将控件绘制到不在屏幕上的位图

C# 将控件绘制到不在屏幕上的位图,c#,winforms,graphics,C#,Winforms,Graphics,我有一个应用程序,是相当重的图形我有很多不同的面板与透明的控制,拉伸背景图像和大量的控制 如果我隐藏一个面板并显示下一个面板,渲染效果会很糟糕,它可能会闪烁,通常需要几秒钟才能准备好 现在我已经玩弄了双缓冲、冻结绘制和CreateParams,看起来我已经超越了Winforms设计的图形化功能 那么,当控件不可见或不在屏幕上时,是否可以将所有控件加载到面板上并执行DrawToBitmap之类的操作?然后在屏幕上显示位图 我试着把它们画成可见的,在-2000,-2000位时,它并没有给我一个图像。

我有一个应用程序,是相当重的图形我有很多不同的面板与透明的控制,拉伸背景图像和大量的控制

如果我隐藏一个面板并显示下一个面板,渲染效果会很糟糕,它可能会闪烁,通常需要几秒钟才能准备好

现在我已经玩弄了双缓冲、冻结绘制和CreateParams,看起来我已经超越了Winforms设计的图形化功能

那么,当控件不可见或不在屏幕上时,是否可以将所有控件加载到面板上并执行DrawToBitmap之类的操作?然后在屏幕上显示位图

我试着把它们画成可见的,在-2000,-2000位时,它并没有给我一个图像。
我曾尝试将visible设置为false并在屏幕上绘制它们,但我没有得到任何图像。

你能在出现闪烁的地方发布一些代码吗?在你展示你正在做的事情之前无法回答。我真的无法发布任何代码,我说的是几千行代码。我有一个主窗体,可以加载5个不同的面板(但这可能会有所不同)。然后,每个面板在后台工作程序中查询数据库,并在完成后构建和添加大量用户控件。此外,我不确定这是否有任何关联,我不是问如何停止闪烁,我是问你是否可以执行drawtobitmap样的操作,而不显示屏幕上的控制面板。