'Textblock'에 해당되는 글 1건

  1. 2009/03/28 CondensedTextBlock #2 (2)
WPF2009/03/28 20:31
안녕하세요. 김대욱입니다. 현재 블로그에 포스팅되어있는 컨텐츠들을 모아서 UserControl LIbrary를 제작 하는 계획을 구상중에 있어서 포스팅이 늦었네요 ^^; 한번에 다 올리기에는 양도 너무 많고 아직 완성이 되질 않았기 때문에 중간중간 정리된 내용을 업로드하도록 하겠습니다. (기타 연재가 완료되지 않은 내용은 중간중간 포스팅 하겠습니다.)

이번시간에는 WPF상에서 텍스트의 자간을 조절하기 위한 CondensedTextblock(http://whatisthat.co.kr/127)의 몇가지 기능을 추가 & 개선한 내용에 대해 소개해 드리겠습니다. 아래는 샘플의 시연 동영상입니다.



기존 단순히 자간만을 조절할 수 있었던 기능에서 각 글자 단위로 Vertical, Horizontal Scale을 조절 가능할 수 있도록 추가 했습니다. 그리고 WPF상에서 작은 크기의 폰트를 사용할 경우 글자의 Antialising이 제대로 적용되지 않아 글자가 깨지는것처럼 보여지는 부분을 개선했습니다.

아래 그림은 기본적으로 WPF에서 제공해주는 TextBlock와 이번 포스팅에서 구현한 CondensedTextblock을 사용하여 각기 다른 크기의(12px ~ 30px까지) 텍스트를 출력했을 경우의 모양을 캡쳐한 화면입니다.



Textblock의 경우 폰트 크기가 작은 외각이 매끄럽지 못한 반면에 CondensedTextblock은 폰트 크기와 관계없이 Antialising이 적용되는 것을 확인 하실 수 있습니다.

아래 소스코드는 텍스트를 출력하는 핵심 코드입니다.

기존의 코드에서는 DrawingContext.DrawText 를 이용하여 FormattedText를 Drawing했지만, 이번 버전에서는 BuildGeometry를 사용하여 Text의 Geometry를 생성하고 DrawGeometry를 이용해 Drawing하도록 했습니다.


PS. 아직 최적화 작업은 진행되지 않은 내용입니다. 참고하시기 바랍니다. 아래는 소스코드입니다.






저작자 표시 비영리 변경 금지
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 곡스