c# panel에 그리기

C# Winform에서 데이터를 불러와서 Panel컨트롤에 특정 좌표에 사각형을 색구분해서 그리는 작업을 하고 있습니다. (Wafer map 데이터를 좌표별로 불러와서 그리는 작업입니다.)

일단 그림을 그리는 데는 성공하였는데 문제는 Form의 크기를 조절하거나 Scroll을 작동해서

화면상에 변화가 생기면 그려 놓은 그림이 사라지는 현상이 있습니다.

resize를 하거나 Scroll 이벤트가 발생 할 경우 다시 그려주면 기능은 원하는 데로 되는데

다시 그리기는 하는데 시간이 너무 걸립니다.

최초 그려 놓은 그림을 유지하면서 Resize나 Scroll을 할 수 있는 방법이 없을 까해서 질문을 드립니다.

1개의 좋아요

Windows Forms인지 WPF인지 알려주실 수 있으실까요? 그리고 그것에 맞는 카테고리를 재 선택 부탁 드립니다.

재현 코드가 있으면 정확하고 빠른 답변이 가능합니다. 재현 코드 준비가 가능하시다면 GitHub 등을 통해 공유주세요.

1개의 좋아요

카데고리를 Windows Forms Q&A로 변경해 드렸습니다.

OnPaint()로 직접 그리실 경우 폼 사이즈가 변경되었을 때 다시 그려줘야 합니다.

기존에 그린 것을 그대로 유지하시려면 사이즈에 맞는 비트맵을 생성해서 그 비트맵에 그려주고 OnPaint()에 그 비트맵을 그리게 되면 이미 그린 것을 계속해서 유지할 수 있습니다.

4개의 좋아요

알려주신 대로 bmp를 만들어서 OnPaint에서는 bmp를 불러오니까
원하는 구현이 되었습니다.
조언 감사드립니다.

2개의 좋아요