기본적으로 서로 다른 문자열을 그 아래에 그릴 수있는 컨트롤을 만들려고합니다. 그러나 문자열의 너비가 컨트롤의 너비보다 클 수 없습니다. 이 문제를 해결하기 위해 RectangleF 객체를 Graphics.DrawString 메서드에 전달하려고합니다. 그것은 전달 된 사각형의 너비보다 넓은 문자열을 래핑합니다. 너무 커지면 전체 문자열을 볼 수 없다는 문제가 해결되지만 다른 문제가 있습니다. 나는이줄 바꿈 된 문자열 측정
Graphics g = e.Graphics; // Paint event
g.DrawString(someText, someFont, someBrush, new PointF(0, 0), someRectangleF);
g.DrawString(someMoreText, someFont, someBrush, new PointF(0, 12), someRectangleF);
뭔가를 시도한다면 문제는 someText 래핑됩니다 경우, 세 번째 줄, 따라서 불가능/하드 읽을 수 있도록 만드는 첫 번째 텍스트의를 통해 텍스트를 그리는 것을 할 것이다.
이 문제에 대한 해결책을 찾고 있었지만 몇 가지 흥미로운 링크를 발견했습니다. 그러나 각 문자의 너비 등을 측정하는 for 루프를 사용했습니다. 이 작업을 수행하는 간단한 방법이 있습니까?
Wrapping으로 TextBlock을 사용하는 것을 고려 했습니까? 빌드하려고하는 컨트롤은 ListView와 매우 비슷합니다. 왜 사용자 정의 컨트롤입니까? – Paparazzi
ListView 사용을 고려했습니다. 그러나 내 컨트롤은 내 프로그램에서 인쇄 할 수있는 시간표를 나타냅니다. 그리고 인쇄 된 ListView는별로 좋아 보이지 않으므로 직접 컨트롤을 만들려고했습니다. 오, 미안 해요. WinForms를 사용하고 있다는 것을 잊어 버렸습니다. 내 질문을 편집했습니다. – haiyyu