728x90
WPF TextBlock 완벽 가이드
WPF(Windows Presentation Foundation)에서 TextBlock은 텍스트를 표시하기 위한 가장 기본적이고 경량화된 컨트롤입니다. 단순히 텍스트를 보여주는 용도로 사용되며, 사용자 입력을 받지 않습니다. 이 글에서는 TextBlock의 기본 개념부터 고급 사용법까지 자세히 살펴보겠습니다.
728x90
1. TextBlock 기본 개념
TextBlock은 WPF 애플리케이션에서 텍스트를 표시하는 가장 기본적인 방법입니다. Label과 달리 액세스 키를 지원하지 않으며, TextBox와 달리 사용자 입력을 받지 않습니다. 단순히 텍스트를 표시하는 용도로 설계되었습니다.
기본 속성
<TextBlock Text="안녕하세요!"
FontSize="14"
FontWeight="Bold"
Foreground="Blue" />
2. 텍스트 서식 지정
TextBlock은 다양한 서식 옵션을 제공합니다.
2.1 기본 서식 속성
속성 | 설명 |
---|---|
FontFamily | 글꼴 지정 |
FontSize | 글꼴 크기 지정 |
FontWeight | 글꼴 두께 (Bold, Normal 등) |
FontStyle | 글꼴 스타일 (Italic, Normal 등) |
Foreground | 텍스트 색상 |
Background | 배경 색상 |
TextDecorations | 텍스트 장식 (Underline 등) |
2.2 텍스트 정렬
<TextBlock Text="가운데 정렬된 텍스트"
TextAlignment="Center"
HorizontalAlignment="Center"
VerticalAlignment="Center" />
3. 텍스트 줄 바꿈과 공간 처리
3.1 TextWrapping
텍스트가 컨트롤의 경계를 벗어날 때 어떻게 처리할지 지정합니다.
<TextBlock Width="200"
TextWrapping="Wrap"
Text="이 텍스트는 너무 길어서 지정된 너비를 초과하면 자동으로 다음 줄로 넘어갑니다." />
TextWrapping 옵션:
NoWrap
: 텍스트 줄 바꿈 없음 (기본값)Wrap
: 단어 경계에서 줄 바꿈WrapWithOverflow
: 문자 경계에서 줄 바꿈
3.2 LineHeight 및 LineStackingStrategy
줄 간격을 조정할 수 있습니다.
<TextBlock TextWrapping="Wrap"
LineHeight="30"
LineStackingStrategy="BlockLineHeight"
Text="줄 간격이 조정된 텍스트입니다. 여러 줄에 걸쳐 표시됩니다." />
4. 인라인 서식
TextBlock의 강력한 기능 중 하나는 인라인 요소를 사용하여 텍스트의 일부에만 서식을 적용할 수 있다는 것입니다.
<TextBlock>
<Run Text="일반 텍스트" />
<Run Text="굵은 텍스트" FontWeight="Bold" />
<LineBreak />
<Run Text="색상이 있는 텍스트" Foreground="Red" />
<Hyperlink NavigateUri="https://example.com">하이퍼링크</Hyperlink>
</TextBlock>
4.1 인라인 요소 종류
Run
: 기본 텍스트 서식 요소LineBreak
: 줄 바꿈Span
: 여러 인라인 요소 그룹화Bold
,Italic
: 굵게, 기울임꼴 텍스트Hyperlink
: 클릭 가능한 하이퍼링크InlineUIContainer
: 인라인 요소 안에 UI 요소 포함
5. 텍스트 트리밍
텍스트가 할당된 공간보다 길 때 처리 방법을 지정할 수 있습니다.
<TextBlock Text="이 텍스트는 너무 길어서 생략됩니다..."
TextTrimming="CharacterEllipsis"
Width="150" />
TextTrimming 옵션:
None
: 트리밍 없음CharacterEllipsis
: 문자 단위로 잘라내고 생략 부호(...) 표시WordEllipsis
: 단어 단위로 잘라내고 생략 부호 표시
6. 실제 예제
6.1 기본 뉴스 카드 만들기
<Border BorderBrush="LightGray" BorderThickness="1" Padding="10" Margin="5" CornerRadius="5">
<StackPanel>
<TextBlock Text="뉴스 헤드라인" FontSize="18" FontWeight="Bold" Margin="0,0,0,5" />
<TextBlock TextWrapping="Wrap" Margin="0,0,0,10">
<Run Text="작성자: " FontWeight="SemiBold" />
<Run Text="홍길동" />
<Run Text=" | " />
<Run Text="2025년 4월 7일" Foreground="Gray" />
</TextBlock>
<TextBlock TextWrapping="Wrap" TextTrimming="CharacterEllipsis" Height="60">
이것은 뉴스 기사의 본문입니다. 텍스트가 너무 길어서 지정된 높이를 초과하면
자동으로 잘립니다. TextTrimming 속성은 텍스트가 잘릴 때 어떻게 표시할지 결정합니다.
</TextBlock>
<TextBlock Margin="0,10,0,0">
<Hyperlink NavigateUri="https://example.com">자세히 보기</Hyperlink>
</TextBlock>
</StackPanel>
</Border>
6.2 다양한 서식이 적용된 텍스트 블록
<TextBlock TextWrapping="Wrap" Margin="10">
<Run Text="WPF TextBlock" FontSize="24" FontWeight="Bold" />
<LineBreak />
<LineBreak />
<Run Text="TextBlock은 " />
<Run Text="다양한 서식" FontWeight="Bold" Foreground="Blue" />
<Run Text="을 지원합니다. " />
<LineBreak />
<Run Text="인라인 요소를 사용하면 " />
<Italic>기울임꼴</Italic>
<Run Text=", " />
<Bold>굵은 글씨</Bold>
<Run Text=", " />
<Underline>밑줄</Underline>
<Run Text=" 등 다양한 스타일을 적용할 수 있습니다." />
<LineBreak />
<LineBreak />
<Hyperlink RequestNavigate="Hyperlink_RequestNavigate"
NavigateUri="https://learn.microsoft.com/ko-kr/dotnet/desktop/wpf/controls/textblock-overview">
WPF TextBlock 공식 문서 보기
</Hyperlink>
</TextBlock>
WPF TextBlock
TextBlock은 다양한 서식 을 지원합니다.
인라인 요소를 사용하면 기울임꼴 , 굵은 글씨 , 밑줄 등 다양한 스타일을 적용할 수 있습니다.
WPF TextBlock 공식 문서 보기
7. 코드 비하인드에서 TextBlock 조작
TextBlock은 코드 비하인드에서도 쉽게 조작할 수 있습니다.
// 텍스트 변경
myTextBlock.Text = "새로운 텍스트";
// 서식 변경
myTextBlock.FontSize = 16;
myTextBlock.Foreground = new SolidColorBrush(Colors.Green);
// 인라인 요소 추가
Run run1 = new Run("코드에서 ");
Run run2 = new Run("추가된 텍스트") { Foreground = Brushes.Red, FontWeight = FontWeights.Bold };
myTextBlock.Inlines.Clear();
myTextBlock.Inlines.Add(run1);
myTextBlock.Inlines.Add(run2);
8. TextBlock vs Label vs TextBox
컨트롤 | 주요 용도 | 특징 |
---|---|---|
TextBlock | 읽기 전용 텍스트 표시 | 경량, 인라인 서식 지원 |
Label | 컨트롤 라벨링 | 액세스 키 지원 |
TextBox | 사용자 텍스트 입력 | 편집 가능, 입력 검증 |
9. 성능 최적화 팁
- 자주 변경되는 텍스트가 아니라면 캐싱하여 사용
- 텍스트가 매우 길 경우 가상화된 패널 사용
- 복잡한 인라인 서식 사용 시 성능에 영향을 줄 수 있음을 고려
- 대량의 TextBlock 사용 시 메모리 사용량 모니터링
10. 결론
WPF의 TextBlock은 간단하면서도 강력한 텍스트 표시 컨트롤입니다. 기본 텍스트 표시부터 복잡한 인라인 서식까지 다양한 사용 사례를 지원합니다. 적절한 속성과 인라인 요소를 활용하면 사용자 인터페이스에서 멋진 텍스트 표현을 만들 수 있습니다.
이 가이드가 여러분의 WPF 애플리케이션 개발에 도움이 되길 바랍니다!
작성일: 2025년 4월 7일 | 최종 수정: 2025년 4월 7일
728x90
'WPF' 카테고리의 다른 글
WPF 계산기 구현 (14) | 2025.03.17 |
---|---|
WPF MVVM으로 공학용 계산기 만들기: 초보자 가이드 (40) | 2025.03.11 |
WPF 커스텀 텍스트 박스와 원형 버튼 구현하기 (14) | 2025.03.10 |
WPF ComboBox와 MSSQL 연동 완벽 가이드 (8) | 2025.03.07 |
WPF DataGrid 샘플 소스 (6) | 2025.03.07 |