WPF에서 폰트 설치 없이 외부 폰트를 사용하는 방법
외부 폰트 사용: WPF 앱에서 폰트 설치 없이 사용하기
WPF(Windows Presentation Foundation) 앱 개발 중 외부 폰트를 사용해야 하는 상황이 발생할 수 있습니다. 흔한 경우는 아니지만, 특정 디자인 요구사항이나 클라이언트 요청에 따라 외부 폰트를 적용해야 할 때가 있습니다. 외부 폰트는 시스템에 기본적으로 설치되어 있지 않은 폰트를 의미하며, 앱 실행 시 폰트 설치 없이 사용할 수 있도록 하는 것이 중요합니다.
외부 폰트가 필요한 경우
대부분의 WPF 앱은 설치 파일 형태로 배포되기 때문에, 설치 과정에서 폰트를 함께 설치할 수 있습니다. 하지만, 포터블 방식으로 배포되는 앱의 경우, 관리자 권한이 없을 경우 폰트 설치가 불가능하므로 외부 폰트를 사용해야 합니다.
외부 폰트 사용 방법: 폰트 리소스 활용
외부 폰트를 사용하는 가장 효율적인 방법은 폰트 파일을 어셈블리 리소스에 포함시키는 것입니다. 이렇게 하면 폰트 설치 없이 앱 실행 시 폰트를 로드하여 사용할 수 있습니다.
1. 폰트 파일을 프로젝트에 포함: 원하는 폰트 파일(.ttf)을 WPF 프로젝트에 추가하고, 빌드 작업을 "리소스"로 설정합니다.
XML
<ItemGroup>
<Resource Include="Fonts\내폰트.ttf" />
</ItemGroup>
2. FontFamily 속성에 폰트 로드: 컨트롤(예: TextBlock)의 FontFamily
속성에 리소스에 포함된 폰트를 로드하여 사용합니다. 이때, 주의할 점은 폰트 파일명이 아닌 실제 폰트 이름을 사용해야 한다는 것입니다.
XML
<TextBlock FontFamily="Fonts/#Pretendard Variable" />
주의 사항:
- 폰트 이름 확인: 폰트 파일을 탐색기에서 더블클릭하여 "글꼴 이름"을 확인하고, 해당 이름을
FontFamily
속성에 지정해야 합니다. - # 기호 사용: 폰트 이름 앞에 “#” 기호를 붙여서 리소스에 포함된 폰트임을 명시해야 합니다.
- 다른 어셈블리의 폰트 사용: 다른 어셈블리에 포함된 폰트를 사용하려면
pack://application:,,,/OtherAssembly;component/Fonts/#폰트이름
형식으로 pack URI를 지정해야 합니다.
응용 및 추가 정보
- Resource 활용: 자주 사용하는 폰트는
ResourceDictionary
에 FontFamily 리소스로 정의하여 재사용할 수 있습니다. - MSDN FontFamily 문서 참조: FontFamily 속성에 대한 자세한 내용은 MSDN 문서를 참조하십시오. (https://learn.microsoft.com/en-us/dotnet/api/system.windows.media.fontfamily?view=windowsdesktop-8.0)
결론
WPF 앱에서 외부 폰트를 사용하는 것은 앱의 디자인을 향상시키고 사용자 경험을 개선하는 데 도움이 됩니다. 폰트 리소스를 활용하여 폰트 설치 없이 외부 폰트를 사용하는 방법을 익히고, 다양한 응용 방법을 통해 WPF 앱 개발에 활용해 보세요.
댓글
댓글 쓰기