3

在我的 .NET 2.0 项目中,我创建了一个空的派生类System.Windows.Forms.PictureBox

public class NewPictureBox : PictureBox
{
    //absolutely nothing 
}

然后我做了以下事情:

  1. 将派生控件和基本控件的Image属性都设置为相当大的图像 (800x600),SizeModeis Normal(仅显示左上部分);
  2. 连接了几个NewPictureBox's 和PictureBox' 事件,以便在表面上拖动鼠标时可以绘制一个选择框;
  3. 设置它,以便选择框的属性 ( Width/ Height) 将在NumericUpDown控件上实时更新。

问题是在派生的 PB 上真正快速拖动鼠标时,与在基本 PB 上执行相同操作相比,存在相当大的“断断续续”。/值不会实时更新WidthHeight

有谁知道为什么会这样?如何使用派生控件实现相同的平滑度?谢谢!

对于希望查看具有所描述问题的最小示例项目的任何人:

http://www.mediafire.com/?i2nq2tmmjzx

4

1 回答 1

1

通过 PB 调整大小以适应控件的图像非常昂贵。GDI+ 有一个非常好的过滤器,但它不是免费提供的。在将图像分配给 Image 属性之前自己调整图像大小,这样 PB 就不必调整它的大小。

使用使用 Format32bppPArgb 创建的位图也可以产生很大的不同,它比任何其他格式快 10 倍。

于 2010-01-28T01:14:17.290 回答