Windows フォームの PictureBox コントロールは、画像を表示する便利な方法を提供します。 ただし、カスタム描画メソッドを PictureBox の Paint
イベントと効率的に統合するには、慎重な検討が必要です。このガイドでは、カスタム描画ロジックと Paint
イベント ハンドラーをシームレスに組み合わせる方法について説明します。
Paint
イベントとカスタム描画メソッドを理解する
コントロールの再描画 (サイズ変更、画像の変更など) が必要になるたびに、PictureBox の Paint
イベントが発生します。 カスタム描画メソッド (Circle()
など) は描画ロジックをカプセル化し、Bitmap
オブジェクトを返す可能性があります。
統合戦略
カスタム描画メソッドを統合するには、次の 2 つの主なアプローチが存在します。
1.コントロールへの直接描画:
このアプローチでは、e.Graphics
イベント ハンドラー内の Paint
オブジェクトを使用して、PictureBox に直接描画します。 変更は再描画後も持続します。
<code class="language-csharp">private void pictureBox1_Paint(object sender, PaintEventArgs e) { e.Graphics.DrawEllipse(Pens.Red, new Rectangle(3, 4, 44, 44)); // ... other drawing operations ... }</code>
2.画像への描画:
このメソッドは、PictureBox の基礎となる Image
プロパティを変更します。 変更はビットマップ自体を変更するため、永続的になります。 Graphics.FromImage(pictureBox1.Image)
を使用して描画用の Graphics
オブジェクトを作成し、pictureBox1.Refresh()
を呼び出して表示を更新します。
<code class="language-csharp">void drawIntoImage() { using (Graphics G = Graphics.FromImage(pictureBox1.Image)) { G.DrawEllipse(Pens.Orange, new Rectangle(13, 14, 44, 44)); // ... other drawing operations ... } pictureBox1.Refresh(); }</code>
最適なアプローチの選択
最適なアプローチは、お客様の特定のニーズによって異なります。 直接描画は、PictureBox 上で直接、即時かつ永続的な変更が必要な場合に適しています。 基礎となるビットマップを変更する場合は、イメージへの描画を推奨します。これにより、複数回再描画した後でも変更が確実に保持されます。
以上がWindows フォームでカスタム Draw メソッドを PictureBox の Paint イベントと統合する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。