레이블과 텍스트 블록의 차이
Microsoft .NET 470-511 교육 키트를 사용한 Windows 애플리케이션 개발에 따르면
사이의 차이점은 무엇입니까?Label
제어 및TextBlock
내용 컨트롤과 텍스트 표시 둘 다이므로 컨트롤?
TextBlock이 컨트롤이 아닙니다.
그럼에도 불구하고.TextBlock
시스템에 저장됩니다.창문들.네임스페이스를 제어합니다. 컨트롤이 아닙니다.에서 직접 파생됩니다.FrameworkElement
반면에 라벨은 다음에서 파생됩니다.ContentControl
즉,Label
캔:
- 를 통해 사용자 지정 제어 템플릿 제공
Template
재산). - 문자열 이외의 데이터 표시(를 통해)
Content
재산). - 적용 a
DataTemplate
(을 통해) 마음껏ContentTemplate
재산). 다른 것은 무엇이든 하라.
ContentControl
그렇게 할 수 있습니다.FrameworkElement
수 없다.Label
비활성화 시 텍스트가 회색으로 표시됨Label
액세스 키 지원Label
보다 훨씬 더 무겁습니다.TextBlock
아래에 더 많은 흥미로운 읽을거리가 있습니다.
일반적으로 레이블은 단일 줄 텍스트 출력을 지원하는 반면 텍스트 블록은 여러 줄 텍스트 표시용입니다.
예를 들어 wpf TextBlock에는 속성이 있습니다.TextWrapping
여러 줄 입력을 활성화합니다. 레이블에는 이 기능이 없습니다.
Label
이라ContentControl
즉, 모든 것을 콘텐츠로 설정할 수 있습니다.문자열, 숫자, 날짜, 기타 컨트롤, 이미지, 모양 등을 포함한 모든 것. TextBlock
만 처리할 수 있습니다.strings
.
텍스트 블록과 레이블은 모두 텍스트를 표시하는 데 사용되지만, 표지 아래에서는 상당히 다릅니다.
=> Label은 상상할 수 있는 거의 모든 UI를 표시할 수 있는 기본 클래스인 ContentControl에서 상속됩니다.
=> 반면에 TextBlock은 FrameworkElement에서 직접 상속되므로 Control에서 상속되는 모든 요소에서 공통적으로 발생하는 동작이 누락됩니다.TextBlock의 상속 계층 구조가 얕기 때문에 컨트롤은 Label보다 무게가 가벼우며 간단한 비대화형 시나리오에 더 적합합니다.
PS: 그러나 액세스 키가 작동하거나 보다 유연하거나 그래픽 디자인을 원한다면 레이블을 사용해야 합니다.
아마도 가장 짜증나는 특징은TextBlock
암시적 스타일 조회 동작으로, 가장 가까운 곳까지만 범위가 지정됩니다.DataTemplate
은 non "non "에 입니다.Control
요소xaml 파일
<StackPanel Orientation="Vertical">
<StackPanel.Resources>
<Style TargetType="TextBlock">
<Setter Property="Foreground" Value="Red"/>
</Style>
<Style TargetType="Label">
<Setter Property="Foreground" Value="Red"/>
</Style>
</StackPanel.Resources>
<ContentControl Content="Test">
<ContentControl.ContentTemplate>
<DataTemplate>
<TextBlock Text="{Binding}"/>
</DataTemplate>
</ContentControl.ContentTemplate>
</ContentControl>
<ContentControl Content="Test">
<ContentControl.ContentTemplate>
<DataTemplate>
<Label Content="{Binding}"/>
</DataTemplate>
</ContentControl.ContentTemplate>
</ContentControl>
</StackPanel>
결과:
당신은 여기에서 그것에 대해 더 읽을 수 있습니다.
언급URL : https://stackoverflow.com/questions/5382925/difference-between-label-and-textblock
'programing' 카테고리의 다른 글
엔티티 개체는 IEentityChangeTracker의 여러 인스턴스에서 참조할 수 없습니다.Entity Framework 4.1에서 엔티티에 관련 개체를 추가하는 동안 (0) | 2023.05.28 |
---|---|
mongodb 쉘은 어떻게 시작하나요? (0) | 2023.05.28 |
MongoDB 인스턴스에 대한 클라이언트가 유효한지 어떻게 확인합니까? (0) | 2023.05.28 |
HEAD 커밋 ID를 표시하는 Git 명령? (0) | 2023.05.28 |
tf.app.run()은 어떻게 작동합니까? (0) | 2023.05.28 |