3

私の .NET 2.0 プロジェクトでは、次の空の派生クラスを作成しましたSystem.Windows.Forms.PictureBox

public class NewPictureBox : PictureBox
{
    //absolutely nothing 
}

次に、次のことを行いました。

  1. 派生コントロールとベース コントロールの両方のImageプロパティをかなり大きな画像 (800x600) に設定しSizeModeますNormal(左上部分のみが表示されます)。
  2. NewPictureBoxおよび のイベントのいくつかを接続しPictureBoxて、サーフェス上でマウスをドラッグしたときに選択ボックスを描画できるようにしました。
  3. 選択ボックスのプロパティ ( Width/ ) がコントロール上でリアルタイムHeightに更新されるように設定します。NumericUpDown

問題は、派生 PB でマウスを非常に高速にドラッグすると、ベース PB で同じ操作を行う場合と比較して、かなりの「途切れ」があることです。Width/値はHeightリアルタイムで更新されません。

なぜこのようになっているのか誰か知っていますか?派生コントロールで同じ滑らかさを実現するにはどうすればよいですか? ありがとう!

説明されている問題を含む最小限のサンプル プロジェクトをチェックアウトしたい人向け:

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

4

1 に答える 1

1

コントロールに合わせて PB によってサイズ変更された画像を取得するには、非常にコストがかかります。GDI+ には非常に優れたフィルターがありますが、無料では提供されません。PB がサイズを変更する必要がないように、画像を Image プロパティに割り当てる前に自分でサイズを変更します。

Format32bppPArgb で作成されたビットマップを使用すると、他のどのフォーマットよりも 10 倍高速になり、大きな違いが生まれます。

于 2010-01-28T01:14:17.290 に答える