WPF 팁

글자 크기에 맞춰 Control의 크기를 늘리는 방법 칼맨 평점: 10.0/10 (1명 참여) 조회: 4104
C# 에 적응 되어있는 지식으로 WPF 에 뛰어드니 비슷하면서도 너무 어려운것 같습니다ㅠ...

public static double MeasureTextWidth(GlyphTypeface glyphTypeface,double FontSize,string s)
{
            double width = 0;

            for (int i = 0; i < s.Length; i++)
            {
                char ch = s[i];
                ushort glyph = glyphTypeface.CharacterToGlyphMap[ch];
                double advanceWidth = glyphTypeface.AdvanceWidths[glyph];
                width += advanceWidth;
            }
            return width * FontSize;
}

사용 방법:
double doubleWidth = MeasureTextWidth(new GlyphTypeface(FlowDocument.FontFamily.BaseUri), 12.0, "String");

MeasureString으로 Control의 크기를 늘려 보았더니 Font에 맞는 정확한 글자 크기를 못 찾아 내는것 같더라구요.

그래서 여러가지 시도를 해보았지만 게속 실패하여.. 구글에서 방법을 찾아 냈습니다.

혹시 글자 크기에 맞춰 Control을 늘리고 싶었는데 고민 하셨던 분에게 큰 도움이 되길 바라겠습니다.

몇 주간 계속 고민하던게 풀려 너무 기분이 좋네요.


태그 : Control,font,폰트,크기,사이즈
작성자 정보
칼맨
Level 20
 [EXP.39/70]

메일:  비공개

글등록 +12 432 덧글등록 +3 127
자기소개
안녕하세요!
글 공유하기 |
  tweet facebook
2012-02-28 오후 5:00:08
나도한마디
사용자
Linus            [2012-02-28]
Level 61
 [EXP.21/250]
위 글과는 다르지만 제 블로그에 WPF혹은 윈폼에서 text의 Width를 구하는 법을 포스팅 해놓았습니다.
http://ryunad.tistory.com/90
이런 방법도 있었군요 ^^
사용자
칼맨            [2012-02-29]
Level 20
 [EXP.39/70]
더 간단한 방법이 있었네요. 읔ㅋㅋㅋ
사용자
회색하늘            [2012-04-03]
Level 2
 [EXP.7/16]
감사합니다 ~
태그로 엮인글
글리스트
VS와 Blend에서 화면구조 보기 파일첨부 깜디
Canvas 의 Preview 기능 구현하기[1] 파일첨부 깊은물
[Command] 하나의 컨트롤에 여러 커맨드를 등록하는 법[1]  깜디
[UX 스터디 자료] WPF 자료[5] 파일첨부 sky
DataView를 이용해서 소팅하는 방법  지유니
ListView를 이용해서 그룹핑, 소팅하는 법  지유니
WPF에서 Ellipse 그리기[3]+2  재선
애니메이션 진행 중 마우스의 반응이 안좋습니다.[1]  칼맨
[RE] 애니메이션 진행 중 마우스의 반응이 안좋습니다.[2]+5  Linus
ComboBox에 item 뻘짓하면서 넣기~ 파일첨부 치사대마왕
 ★현재글->   글자 크기에 맞춰 Control의 크기를 늘리는 방법[2]+1  칼맨
MVVM패턴으로 Navigation을... 파일첨부 강이리
Entity Framework 4.2 June CTP 사용해보기[1]+1  꿀대두
마샬링 쉽게하기..  피스몬
UserControl에서의 다중 상속 문제를 해결 하는 방법 파일첨부 뼈개
Windows Presentation Foundation-Begining  블랙
SNOOP WPF SPY UTILITY  시선
[RE] SNOOP WPF SPY UTILITY 사용법[2]  블랙
WPF Performance suite  시선
나만의 팁 - 두개의 미디어 동기화 방법[5]+2  LiveDK
Windows7 멀티터치 프로그래밍 시리즈 6/6 - 실버라이트 4의 멀티터치[1]  오일석