UI는 폰트만 바꿔도 분위기가 크게 바뀝니다.
보통 디자이너가 사용한 폰트를 내 PC에 설치하고 Visual Studio에서 해당 폰트를 xaml에 적용해서 개발을 한 뒤 배포를 하는데 막상 다른 PC에서는 기본 폰트로 출력되는 상황을 다들 경험해 보셨을 거 같습니다.
위와 같은 상황에서 폰트를 해당 PC에 설치하거나 디자이너가 선택한 폰트를 포기하고 기본 폰트로 전체 UI를 수정하기도 하는데 가장 좋은 방법인 어플리케이션에 폰트를 리소스로 등록하여 사용하는 방법입니다.
WPF에서 Font를 포함하기
구글링을 하면 신기하게 Font를 포함하여 배포하는 방법이 참 많은데 이게 참 은근히 잘안됩니다.
많은 정보는 오히려 혼란을 주는 것 같습니다.
1. Font를 프로젝트 내 폴더에 복사
사용하려는 폰트를 프로젝트 내의 특정 폴더에 복사합니다.
저는 Fonts라는 폴더에 복사를 했습니다.
NotoSansKR-Regular 폰트를 사용하겠습니다.
2. Font 속성 변경
폰트의 속성창을 열고 빌드 작업에서 '리소스'로 변경합니다.
3. xaml에서 리소스 등록
App.xaml 파일에 추가하는 것이 여러모로 편합니다.
App.xaml을 열고
<Application.Resources>
<ResourceDictionary>
<FontFamily x:Key="NotoSansKR-Regular">pack://applicaton:,,,/Fonts/#Noto Sans KR</FontFamily>
.
.
.
ResourceDictionary에 폰트를 추가합니다.
<FontFamily x:Key="NotoSansKR-Regular">pack://applicaton:,,,/Fonts/#Noto Sans KR</FontFamily>
(오타 주의)
여기서 # 뒤의 'Noto Sans KR'는 파일명이 아니고 Font의 이름입니다.
확인하는 방법은
폰트파일을 더블 클릭해서 설치창이 뜨면
글꼴 이름에서 확인할 수 있습니다.
4. 사용법
폰트가 WPF의 Resource로 등록되어 있으니 StaticResoure로 사용할 수 있습니다.
FontFamily="{StaticResource NotoSansKR-Regular}"
폰트 적용을 원하는 Control에 위와 같이 FontFamily를 적용하면 완료.