c# - 从比屏幕高的控件绘制位图

标签 c# winforms controls bitmap

我在将 C# 控件保存到位图文件时遇到了很多问题。所讨论的控件是一种绘图表面,用户可以在其上书写文本、绘制图片和绘制框。该控件可调整大小并可拖动。发生的情况是,当控件非常大并且在屏幕上不完全可见时,控件不可见的部分将以半绘制的方式保存在位图上。用于生成位图的代码非常简单:

Bitmap bitmap = new Bitmap(myControl.Width, myControl.Height);
myControl.DrawToBitmap(bitmap);

我尝试了以下方法来尝试绘制完整的位图,但没有成功:

myControl.Invalidate(myControl.ClientRectangle, true);
myControl.Refresh();
myControl.Update();
Application.DoEvents();

我无法缩小控件以使其完全可见,因为分辨率和图像质量对该项目非常重要。事实上,我实际上是在尝试放大图像以提高其质量。有没有我不知道从控件生成图像的方法?

谢谢你。

最佳答案

DrawToBitmap 有局限性,并不总是按预期工作。尝试使用原生 GDI+

这里是 example

关于c# - 从比屏幕高的控件绘制位图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5331658/

相关文章:

c# - 在 Finalizer 中处理 MemoryCache 会抛出 AccessViolationException

c# - 同时运行两个winform窗口

c# - 如何确定窗体上的哪个控件具有焦点?

wpf - 如何按名称或类型查找 WPF 控件?

c# - 异步套接字的内存问题并开始发送

c# - C# 单元测试套件的单线程

c# - 如何将我所有的定位卫星组件组合到 EXE 中?

c# - 在 C# 中获取 Flowlayoutpanel 的所有子级

vb.net - VB流行颜色选择器

asp.net - 在 .NET 中编写大型多步骤表单的最有效方法?