반응형

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);
}

반응형

+ Recent posts