In his answer里克布鲁斯特表示“PictureBox
经常被误解。”并且“你可能几乎不想使用它。”
不幸的是,他没有解释PictureBox
的错误。我使用它来显示和操作图像,它有点慢,但如果它不是用于显示图片,它的意义是什么?
答案 0 :(得分:5)
它是一种便捷控件,对于点击式UI设计非常有用。但可以肯定的是,它非常浪费。虽然它对Label控件没有任何影响。您正在烧毁整个Windows窗口,只是为了绘制图像。本机窗口对象是非常昂贵的系统资源。替代方案是OnPaint()方法中的一行代码,e.Graphics.DrawImage()。
正如里克指出的那样,它并不是一个非常聪明的控制。它重新调整图像以适应控件每次需要自己绘制的时间。并且它也没有优化图像的像素格式,也迫使GDI +每次都进行像素转换。净效果当然可能是一个缓慢的UI,使图像绘制速度比必要慢100倍肯定不常见。否则,在通用控制中难以做出的那种权衡;这样的优化不是免费的,可能会使内存需求翻倍。
相比之下,像Outlook这样的Microsoft Office程序使用大约50个窗口,其中大多数是工具栏。这就是你在不到10分钟的时间内在Winforms中一起吵架的原因。便利是有代价的。 Office程序也是如此,它需要很多程序员。