programing

WPF TextBlock 요소와 Label 컨트롤의 차이점은 무엇입니까?

nasanasas 2020. 8. 18. 07:46
반응형

WPF TextBlock 요소와 Label 컨트롤의 차이점은 무엇입니까? [복제]


이 질문에 이미 답변이 있습니다.

다음 스 니펫은 시각적으로 동일한 UI를 생성합니다. 그럼 왜 2 개의 컨트롤이 있는가 ..
Snippet1

<TextBlock>Name:</TextBlock>
<TextBox Name="nameTextBox" />

스 니펫 2

<Label>Name:</Label>
<TextBox Name="nameTextBox" />

( 글쎄, 나는 이것에 직접 대답 할 것이다 ... 이것이 내가 오늘 프로그래밍 WPF 에서 배운 유용한 정보라고 생각했다 )


WPF Textblock 은 Label Control처럼 System.Windows.Control 에서 파생되는 대신 FrameworkElement 에서 상속됩니다 . 이것은 Textblock이 훨씬 더 가볍다는 것을 의미합니다. 텍스트 블록 사용의 단점은 액세스 / 가속기 키를 지원하지 않으며 대상으로 다른 컨트롤에 대한 링크가 없다는 것입니다.

텍스트 만 표시하려면 TextBlock을 사용하십시오 . 이점은 텍스트를 표시하는 가볍고 효과적인 방법입니다.

TextBox와 같은 다른 컨트롤과 텍스트를 연결하려면 Label 컨트롤을 사용하십시오 . 이점은 액세스 키와 대상 제어에 대한 참조입니다.


레이블은 중요한 초점 처리 책임 이 있으며, 그 목적은 액세스 키를 사용하여 캡션을 배치하는 것입니다. 그것은이 대상 액세스 키의 대상을 나타내는 속성을. 이렇게 ...

<Label Target="{Binding ElementName=nameTextBox}">_Name:</Label>
<TextBox x:Name="nameTextBox" />

Target 속성이 없으면 Label 컨트롤이 유용하지 않습니다. '요청을 처리 할 수 ​​없음'을 나타내는 액세스 키를 누르면 경고음 만 들립니다.


TextBlocks 및 Labels와 관련된 혼란의 가장 큰 두 가지 이유는 Windows Forms와 상식입니다.

  1. Windows Forms의 양식에 약간의 텍스트를 긁고 싶을 때 레이블을 사용했기 때문에 WPF 레이블로 동일한 작업을 수행하는 (잘못) 따르게됩니다.

  2. 상식은 반대가 사실 일 때 Label은 가볍고 TextBlock은 그렇지 않다고 믿게합니다.

Label 안에 TextBlock을 넣을 수 있습니다.


으로 TextBlock우리가 쉽게 멀티 라인 지원을 할 것 같아요 - 사용 TextWrapping.

사용 Label예 : 확인 메시지 사용에 필요 표시, 이러한 경우에 <AccessKey>덜 똑바로 앞으로보다 태그를 TextBlock.

반면에 TextBlocknot을 사용하면 BorderBrush속성 을 설정할 수 있습니다.

그래서 나에게 두 컨트롤은 텍스트 전체 기능 컨트롤로 결합되어야합니다.


Label은 문자열, 숫자 등과 같은 모든 종류의 데이터 입력을받습니다. 이름에서 알 수 있듯이 TextBlock은 텍스트 문자열 만받습니다.


레이블은 컨트롤의 레이블과 같이 최소한의 텍스트 지원이 필요한 상황에서 TextBlock의 대안으로 사용할 수 있습니다. Label을 사용하면 TextBlock보다 훨씬 적은 리소스 (더 가벼운 무게)가 필요하기 때문에 유리할 수 있습니다.

참고 URL : https://stackoverflow.com/questions/59099/what-is-the-difference-between-the-wpf-textblock-element-and-label-control

반응형