C# PictureBox 드로잉: 독립적인 방법을 사용한 효율적인 기술
C# 양식 애플리케이션에서는 PictureBox 컨트롤에 사용자 정의 그래픽을 그릴 수 있습니다. 그러나 사용자가 별도의 방법으로 이 작업을 수행하려고 하면 문제가 발생할 수 있습니다.
질문:
사용자가 PictureBox에 원을 쉽게 그리는 방법을 만들고 싶지만 이 방법으로 예상한 결과를 얻지 못할 수 있습니다. 문제 메서드는 원을 그리는 데 사용되는 비트맵, 그래픽 개체 및 브러시를 초기화합니다. 그러나 PictureBox의 Paint 이벤트 처리기 내에서 호출하면 원을 올바르게 그릴 수 없습니다.
해결책:
PictureBox에 그리는 별도의 방법을 효과적으로 사용하려면 PictureBox에 표시된 이미지 내에 그리는 것이 목표인지 아니면 컨트롤 자체 내에서 직접 그리는 것인지를 명확히 하는 것이 중요합니다.
방법 1: 컨트롤에 직접 그리기
이미지에 영향을 주지 않고 컨트롤에 직접 그리려면 다음과 같이 PictureBox의 Paint 이벤트 핸들러를 사용하세요.
<code class="language-csharp">private void pictureBox2_Paint(object sender, PaintEventArgs e) { e.Graphics.DrawEllipse(Pens.Red, new Rectangle(3, 4, 44, 44)); }</code>
이 경우 드로잉은 지속적이고 그래픽은 컨트롤의 크기 조정이나 이동에 따라 컨트롤에 바인딩됩니다.
방법 2: 이미지 그리기
PictureBox에 표시된 이미지에 그림을 그리려면 별도의 메서드를 만들고 PictureBox의 Image 속성에서 얻은 Graphics 개체를 사용하여 그립니다.
<code class="language-csharp">void drawIntoImage() { using (Graphics G = Graphics.FromImage(pictureBox1.Image)) { G.DrawEllipse(Pens.Orange, new Rectangle(13, 14, 44, 44)); } pictureBox1.Refresh(); }</code>
그리기가 완료된 후 PictureBox의 Refresh() 메서드를 호출하여 디스플레이를 업데이트합니다. 이 경우 모양은 이미지에 지속되며 이미지의 크기 조정이나 변형에 의해 영향을 받습니다.
위 내용은 C#에서 별도의 메서드를 사용하여 PictureBox에 효율적으로 그리는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!