WPF FontFamily 이용한 글꼴설정

안녕하세요.

가장 간단하고 깔금해보이는 글꼴설정 방법이 궁금합니다.
Uri, 경로설정없이 추가적인 Mainwindow.xaml.cs에 편집없이
가능한 간결하고 겉으로 보이는 것이 없는 글꼴설정 방법을 찾고있습니다.
(ex

<Label x:Name="lbl" FontFamily="Fonts\#Daum"/> 경로설정
tb.FontFamily = new FontFamily(new Uri("pack://application:,,,/") Uri이용

밑의 내용은 참고만 부탁드립니다.(내용이 많이 깁니다. :sweat_smile:)

Youtube 동영상 : C# WPF UI Tutorials: 04 - Custom Window Chrome and Styles 를 통해서
공부 중입니다.
이 동영상에선 Fonts.xaml, app.xaml, MainWindow.xaml을 편집하고 FontFamliy를 이용해 글꼴을 수정합니다.
동영상을 그대로 따라했을 시 글꼴적용이 안됩니다.

방법은

 App.xaml
  <ResourceDictionary Source="./Style/Fonts.xaml"/> 

 Fonts.xaml
  <FontFamily x:Key="LatoThin">pack://application;,,,/Fonts/#Lato Thin</FontFamily>

 MainWindow.xaml
 <TextBlock Text="Welcom, friend!" FontFamily="{StaticResource LatoThin}" FontSize="48"/>
 (텍스트박스 입력)

이렇게 만으로 구동되는것 같습니다.

TextBlock Text=“Welcom, friend!” FontFamily="{StaticResource LatoThin}

저의경우 이렇게하면 StaticResource LatoThin 이부분에서 리소스가 없다고 뜹니다

Style

그래서 선택한 방법이 Style TargetType을 추가해줬습니다.

이 경우 글꼴변경 적용이 안됩니다.

마지막으로 선택한 방법이
App.xaml or Mainwindow에 Resources를 넣는 것입니다.

<FontFamily x:Key="test.App.xaml" >/Fonts/#Lato Bold</FontFamily>

현재로선 App.xaml에 이 코드를 추가하는 것이 가장 나아보입니다.

구동환경
.NET 6.0
C# 10

원본파일 Gitgub.
WPF_Records/FontFamily/Fasetto.word at main · SSstupid/WPF_Records · GitHub

감사합니다.

2개의 좋아요

앗 저는 윈도우에서 폰트를 직접 설치하고 나서 사용했던 것이 전부라서… :sweat_smile:

FontFamily=“Friz Quadrata Std”


답변은 아니지만,

@Stupid 연구하신 방법들 생각도 못했는데 감사합니다!
그리고 나중에 아티클로 만들어 주시면 엄청 좋을 것 같아요!

1개의 좋아요

원하시는 직접적인 내용은 아니지만 아래의 링를 참고할 수 있을 것 같습니다.

2개의 좋아요

안녕하세요.
아티클이 정확히 어떤건가요?

감사합니다.

1개의 좋아요

@Stupid 강좌 팁 글 처럼 써주시면 좋을 것 같아요!!

네이버 마루 부리 글꼴을 내려받은 후

image

/resources에 ttf배치, 리소스로 등록 한 후

image

| Fonts.xaml

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <!--<FontFamily x:Key="Font1">/FontFamily;Component/#MaruBuri Regular</FontFamily>
    <FontFamily x:Key="Font2">/FontFamily;Component/#MaruBuri Light</FontFamily>-->

    <FontFamily x:Key="Font1">pack://application:,,,/resources/#MaruBuri Regular</FontFamily>
    <FontFamily x:Key="Font2">pack://application:,,,/resources/#MaruBuri Light</FontFamily>
</ResourceDictionary>

| App.xaml

    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="Fonts.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Application.Resources>

이후 MainWindow.xaml에 다음처럼 사용할 수 있습니다.

| MainWindow.xaml

    <StackPanel Orientation="Vertical">
        <Label FontFamily="{StaticResource Font1}" FontSize="40">테스트 입니다.</Label>
        <Label FontFamily="{StaticResource Font2}" FontSize="40">테스트 입니다.</Label>
    </StackPanel>

image

실행가능한 소스코드를 통해 코드를 확인할 수 있습니다.

4개의 좋아요