336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

(1) Intro

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


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

 컨트롤 

정의

 Label

Represents the text label for a control and provides support for access keys. 

 TextBlock

Provides a lightweight control for displaying small amounts of flow content.

 TextBox

Represents a control that can be used to display or edit unformatted text. 


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


(2) 차이점

 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 을 사용하자(추후에 변화를 주고 싶다면)


출처 : http://blog.naver.com/PostView.nhn?blogId=inasie&logNo=70025582628&viewDate=%C2%A4tPage=1&listtype=0

Posted by 역시인생한방
,