在我的.NET 2.0项目中,我创建了一个空的派生类System.Windows.Forms.PictureBox
:
public class NewPictureBox : PictureBox
{
//absolutely nothing
}
然后我做了以下事情:
Image
属性设置为相当大的图像(800x600),SizeMode
为Normal
(仅显示左上角部分); < / LI>
NewPictureBox
和PictureBox
的几个事件,因此在表面上拖动鼠标时可以绘制一个选择框; Width
控件上实时更新选择框的属性(Height
/ NumericUpDown
)。问题是当在导出的PB上快速拖动鼠标时,与在基础PB上执行相同操作相比,存在相当大的“不稳定性”。 Width
/ Height
值不会实时更新。
有人知道为什么会这样吗?如何使用派生控件实现相同的平滑度?谢谢!
对于任何希望查看所述问题的最小样本项目的人:
答案 0 :(得分:1)
通过PB调整图像大小以适应控件非常昂贵。 GDI +有一个非常好的过滤器,但它不是免费的。在将图像分配给Image属性之前自己调整图像大小,这样PB就不必调整它的大小。
使用Format32bppPArgb创建的位图也可以产生大差异,它比任何其他格式快10倍。