「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > C#の個別のメソッドを使用してPictureBoxを効率的に描画するにはどうすればよいですか?

C#の個別のメソッドを使用してPictureBoxを効率的に描画するにはどうすればよいですか?

2025-03-22に投稿されました
ブラウズ:807

How Can I Efficiently Draw on a PictureBox Using a Separate Method in C#?

c#picturebox描画:独立した方法を使用するための効率的なヒント

C#フォームアプリケーションでは、PictureBoxコントロールにカスタムグラフィックを描画できます。ただし、ユーザーは別の方法でこれを実行しようとするときに問題に遭遇する場合があります。

質問:

ユーザーは、PictureBoxにサークルを便利に描画する方法を作成する場合がありますが、この方法では予想される結果が生成されないことがわかります。問題方法は、ビットマップ、グラフィックオブジェクト、およびサークルを描くために使用されるブラシを初期化します。ただし、PictureBoxのペイントイベントハンドラーで呼び出された場合、円を正しく描画することはできません。

解決:

PictureBoxを描くために別の方法を効果的に使用するには、PictureBoxによって表示される画像を描画するか、コントロール自体に直接描画するかどうかを必ず確認してください。

方法1:コントロールに直接描画

]

コントロールに直接描画するには(画像に影響を与えることなく)、以下に示すように、PictureBoxのペイントイベントハンドラーを使用してください:

private void pictureBox2_Paint(object sender, PaintEventArgs e)
{
    e.Graphics.DrawEllipse(Pens.Red, new Rectangle(3, 4, 44, 44));
}

この場合、図面は永続的であり、グラフィックスはコントロールのサイズ変更または移動に続いてコントロールにバインドされます。

方法2:画像を描く

]

PictureBoxによって表示される画像を描画するには、PictureBoxの画像プロパティから取得したグラフィックオブジェクトを使用して別のメソッドを作成し、描画します。

void drawIntoImage()
{
    using (Graphics G = Graphics.FromImage(pictureBox1.Image))
    {
        G.DrawEllipse(Pens.Orange, new Rectangle(13, 14, 44, 44));
    }
    pictureBox1.Refresh();
}

図面が完了したら、PictureBoxの更新()メソッドを呼び出してディスプレイを更新します。この場合、グラフィックは画像​​に永続的であり、画像のスケーリングまたは変換の影響を受けます。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3