GDI+를 이용해서 특정 이미지 또는 특정 위치에 글자를 정렬하고 싶을 때는 StringFormat을 이용하면 된다.
아래는 GDI+에서 Rectangle 영역에서 문자에 대한 Left/Center/Right 정렬을 하기 위해서 구현한 소스의 일부분이다.
//헤더 정렬이 Left일 경우
if (columns[i].HeaderAlign == HorizontalAlignment.Left)
{
StringFormat sf = new StringFormat();
sf.LineAlignment = StringAlignment.Center;
sf.Alignment = StringAlignment.Near;
Rectangle colRec = new Rectangle(startVSplitePos + leftHeaderWidth, 0, columns[i].Width, columns[i].Height);
graphics.DrawString(columns[i].Text, headerFont, darkBlueBrush, colRec, sf);
}
else if (columns[i].HeaderAlign == HorizontalAlignment.Right) //헤더 정렬이 Right일 경우
{
StringFormat sf = new StringFormat();
sf.LineAlignment = StringAlignment.Center;
sf.Alignment = StringAlignment.Far;
Rectangle colRec = new Rectangle(startVSplitePos + leftHeaderWidth, 0, columns[i].Width, columns[i].Height);
graphics.DrawString(columns[i].Text, headerFont, darkBlueBrush, colRec, sf);
}
else if (columns[i].HeaderAlign == HorizontalAlignment.Center) //헤더 정렬이 Center일 경우
{
StringFormat sf = new StringFormat();
sf.LineAlignment = StringAlignment.Center;
sf.Alignment = StringAlignment.Center;
Rectangle colRec = new Rectangle(startVSplitePos + leftHeaderWidth, 0, columns[i].Width, columns[i].Height);
graphics.DrawString(columns[i].Text, headerFont, darkBlueBrush, colRec, sf);
}
'C# 개발 > C#' 카테고리의 다른 글
마우스 Point가 선 위에 존재하는지 체크 (0) | 2021.06.29 |
---|---|
User Control 에서 풍선도움말 보여주기 (0) | 2020.02.17 |
WinForm에서 Partial Class를 이용해서 UI와 로직을 분리하기 (0) | 2019.08.22 |
특정 일자의 주차 가져오기 (0) | 2019.06.26 |
날짜 계산 - 일수 가져오기 (0) | 2019.01.09 |