WPF에서 폰트 설치 없이 외부 폰트를 사용하는 방법

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를 지정해야 합니다.

응용 및 추가 정보

결론

WPF 앱에서 외부 폰트를 사용하는 것은 앱의 디자인을 향상시키고 사용자 경험을 개선하는 데 도움이 됩니다. 폰트 리소스를 활용하여 폰트 설치 없이 외부 폰트를 사용하는 방법을 익히고, 다양한 응용 방법을 통해 WPF 앱 개발에 활용해 보세요.

댓글

이 블로그의 인기 게시물

C# 남아도는 메모리에도 불구하고 OutOfMemoryException이 발생한다면?

USB를 뒤는 괜찮은데 앞에 꽂으면 인식이 힘들다?

MySQL 데이터 타입과 Java 데이터 타입 비교/매칭