C#/WPF
WPF Font Family 한글 표시
기공이
2017. 5. 12. 11:30
WPF 에서 시스템에 있는 폰트를 ComboBox 를 통해 혹은 List 를 통해 볼 수 있습니다.
그러나 WPF에서 제공해주는 폰트들은 영어로 표시가 되어 한글 폰트들도 영어 이름으로 나옵니다
예를 들어 "맑은 고딕" -> "Malgun Gothic" 과 같이 말입니다.
그래서 한글로 표시해 주는 방법을 찾아보았습니다.
먼저 System.Windows.Markup.XmlLanguage 에서 GetLanguage 라는 함수를 통해
현재 System 의 언어(System.Globalization.CultureInfo.CurrentUICulture.Name)의 Key를 불러옵니다.
(우리의 경우 ko-kr)
그 뒤 Fonts 의 SystemFontFamilies 로 해당 컴퓨터에 있는 Font List로 각 Font들에 접근합니다.
해당 폰트가 System의 언어 (우리는 ko-kr) Key를 포함하고 있다면 해당 언어 설정의 이름으로 list에 추가합니다.
System의 언어 Key를 포함하고 있지 않다면 원래의 이름(영어)으로 list에 추가합니다.
이 List는 영어이름 기준 알파벳 순으로 되어있기 때문에 한글 이름을 포함해서 다시 정렬해 줍니다.
코드입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | var cond = System.Windows.Markup.XmlLanguage.GetLanguage (System.Globalization.CultureInfo.CurrentUICulture.Name); listFont = new List<string>(); foreach (FontFamily font in Fonts.SystemFontFamilies) { if (font.FamilyNames.ContainsKey(cond)) listFont.Add(font.FamilyNames[cond]); else listFont.Add(font.ToString()); } listFont.Sort(); cbxFont.ItemsSource = listFont; | cs |