WindowsフォームのPictureBoxコントロールは、画像を表示する便利な方法を提供します。 ただし、カスタム描画方法をPictureBoxのペイント
イベントと効率的に統合するには、慎重に検討する必要があります。このガイドは、カスタム描画ロジックとペイント
イベントハンドラーとシームレスに組み合わせる方法を説明します。
ペイントを理解する
イベントとカスタムドローメソッド
Pictureboxのペイント
イベントは、コントロールが再描画する必要があるときはいつでも発生します(例えば、サイズ変更、画像の変更)。 カスタムドローメソッド( circle()
)が描画ロジックをカプセル化し、 bitmap
objectを返す可能性があります。
統合戦略
カスタム抽選方法を統合するための2つの主要なアプローチが存在します:
1。コントロールに直接描画する:
このアプローチは、 e.graphics
オブジェクトを使用してペイント
イベントハンドラーを使用して、画像ボックスに直接描画します。 変更は、塗り直し全体で永続的です。
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
e.Graphics.DrawEllipse(Pens.Red, new Rectangle(3, 4, 44, 44));
// ... other drawing operations ...
}
2。画像を描く:
このメソッドは、PictureBoxの基礎となる画像
プロパティを変更します。 変更は、ビットマップ自体を変更するため、永続的です。 graphics.fromimage(picturebox1.image)
を使用して graphics
object for描画を作成し、 picturebox1.refresh()
を呼び出してディスプレイを更新します。
void drawIntoImage()
{
using (Graphics G = Graphics.FromImage(pictureBox1.Image))
{
G.DrawEllipse(Pens.Orange, new Rectangle(13, 14, 44, 44));
// ... other drawing operations ...
}
pictureBox1.Refresh();
}
最良のアプローチを選択
最適なアプローチは、特定のニーズにかかっています。 直接描画は、PictureBoxに直接即座に永続的な変更が必要な場合に適しています。 基礎となるビットマップを変更したい場合、画像を描画することが望ましいので、複数の塗り直しの後もそれらの変更が残るようにします。。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3