2013-07-24 3 views
0

나는 다음과 같은 차원의 사용자 컨트롤 내에서 드로어 블 영역을 만들려면 :만들기 그래픽 지역

x=0, y=100, width=(UserControl.Width), height=(UserControl.Height-100)합니다.

영역의 클라이언트 영역이 0,0에서 시작하여 클라이언트 영역에 상대적으로 모양을 그리기 쉽고 높이에서 100을 뺀 것에 대해 걱정할 필요가 없기 때문입니다.

C# 및 Visual Studio 2012를 사용하여 사용자 정의 컨트롤에서 직접 드로잉 할 때 그리기 할 수있는 클라이언트 영역을 만드는 데 사용할 수있는 기본 제공 클래스가 있습니까?

답변

1

페인트 이벤트 핸들러에서 e.Graphics.TranslateTransform (0, 100)을 사용하여 도면을 오프셋하면됩니다.

+0

나를 위해 작동하지 않았다. 양식이 최대화되면 변형 된 100 개의 픽셀이 커지는 것 같습니다. 100px 높이로 고정되도록 사용자 정의 컨트롤의 상단 부분이 필요합니다. – Intrepid

+1

나는 그 주석을 이해할 수 없다. 양식을 최대화하고 픽셀이 커지지 않으면 "변형"되지 않는다. 사용자 정의 컨트롤의 위치는 Location 속성에 의해 결정됩니다. 절대적으로 Paint 이벤트 처리기에만 페인트하고 CreateGraphics()는 사용하지 마십시오. –

+0

실제로 그림판 핸들러를 사용하고 있지만 왜 "변형 된"부분이 크기를 변경하는지 알게되었습니다. 직사각형에 음의 Y 점이있어서 화면 위로 이동하게하는 코드 오류였습니다. 나는 당신의 대답을 받아 들일 것입니다. – Intrepid

관련 문제