c# picturebox drawing : 독립적 인 메소드 사용을위한 효율적인 팁
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의 Compert () 메소드를 호출하여 디스플레이를 업데이트하십시오. 이 경우 그래픽은 이미지에 지속되며 이미지의 스케일링 또는 변환에 의해 영향을받습니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3