[WPF]Label vs TextBlock

C# 공부중·2024년 7월 4일

WPF

목록 보기
7/18

(1) intro

윈폼을 건드려본 사람은 Label과 TextBox 컨트롤은 매우 친숙할 것이다. WPF에서는 여기에 TextBlock이라는 컨트롤이 추가되었는데, 무엇이 다른걸까? 우선 MSDN에서 각각의 컨트롤을 어떻게 정의했는지 살펴보자.

(이들은 모두 System.Windows.Controls 네임스페이스 정의되어 있다.)

  • Label은 Access Key를 이용해 접근하는 것을 지원한다. TextBlock은 간단한 Content를 매우 가볍게 제공한다. TextBox는 우리가 알던대로 텍스트의 편집 / 뷰어를 제공한다. 의미만 봐서는 Label과 TextBlock의 차이점을 잘 알지 못하겠다. 왜냐하면 우리가 지금까지 알고있던 Label의 개념과 이번에 나온 TextBlock의 개념이 크게 차이가 나지 않기 때문이다. 이들의 차이점은 기본 자식의 개념에서 확실히 들어난다.

(2) 차이점

앞서 03번째 단원에서 Content Property를 살펴본 바 있다. Content Property의 리턴타입은 Object형으로 거의 모든(Window를 제외하므로) 컨트롤을 지정할 수 있었다. 여기서 Label과 TextBlock의 기본적인 차이가 들어난다.

Label과 TextBlock과 TextBox의 자식요소

  1. Label의 기본 자식은 Content(Object)이다.

  2. TextBlock의 기본 자식은 Text(string)이다.

  3. TextBox의 기본 자식은 Text(string)이다.

그렇다. Label의 자식은 Content로서, string을 포함한 그 어떤 Control이라도 지정할 수 있다. 하지만 TextBlock의 자식은 string 문자열밖에 되지 않는다. 기본 설계부터가 다른 것이다. 마음만 먹는다면 Label의 Content로 Button을 지정할 수도 있다. 물론 Text를 기본자식으로 갖는 TextBlock에서는 꿈도 꾸지 못할 일이다. Label과 TextBlock을 분류하자면 사용 용도에 따른 분류가 될것이다.

사용 용도에 따른 Label과 TextBlock의 분류

è Text만을 사용할 것이라면 TextBlock을 쓰는쪽이 가볍고 빠르다.

è Text외의 것까지 사용하고 싶다면 Label을 사용하자(추후에 변화를 주고 싶다면..)
[출처][WPF] Label, TextBlock, TextBox 첫번째 이야기|작성자 생각하는포비

0개의 댓글