programing

레이블과 텍스트 블록의 차이

powerit 2023. 5. 28. 21:06
반응형

레이블과 텍스트 블록의 차이

Microsoft .NET 470-511 교육 키트를 사용한 Windows 애플리케이션 개발에 따르면

사이의 차이점은 무엇입니까?Label제어 및TextBlock내용 컨트롤과 텍스트 표시 둘 다이므로 컨트롤?

TextBlock이 컨트롤이 아닙니다.

그럼에도 불구하고.TextBlock시스템에 저장됩니다.창문들.네임스페이스를 제어합니다. 컨트롤이 아닙니다.에서 직접 파생됩니다.FrameworkElement반면에 라벨은 다음에서 파생됩니다.ContentControl즉,Label캔:

  1. 를 통해 사용자 지정 제어 템플릿 제공Template재산).
  2. 문자열 이외의 데이터 표시(를 통해)Content재산).
  3. 적용 aDataTemplate(을 통해) 마음껏ContentTemplate재산).
  4. 다른 것은 무엇이든 하라.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

반응형