[wpf] WPF 레이블의 줄 바꿈?

WPF의 레이블 텍스트에 다음과 같은 줄 바꿈을 어떻게 추가 할 수 있습니까?

<Label>Lorem
  ipsum</Label>



답변

<Label><TextBlock>Lorem<LineBreak/>ipsum</TextBlock></Label>

TextBlock은 Inline 개체의 컬렉션을 자식으로 허용하므로 TextBlock을 사용해야합니다. 따라서 TextBlock 요소에 Run Text = “Lorem”, LineBreak 및 Run Text = “ipsum”의 세 가지 인라인 항목을 제공합니다.

다음을 수행 할 수 없습니다.

<Label>Lorem<LineBreak/>ipsum</Label>`

라벨은 하나의 콘텐츠 하위 요소를 허용하기 때문입니다.

또한 사용 사례가 정확히 무엇인지 확실하지 않지만 Label 요소 내부에 TextBlock을 배치했습니다. 반복적입니까? 필요에 따라 실제로는 아닙니다. 다음은 두 요소의 차이점에 대한 좋은 기사입니다. Label과 TextBlock의 차이점


답변

WPF에서는 값을 사용 "&#10;"하거나"&#xA;"

예를 들면 :

<Label Content="Lorem&#10;ipsum" />

( “10”은 줄 바꿈의 ASCII 번호입니다.)

또는

<Label Content="Lorem&#xA;ipsum" />

( “A”는 16 진 줄 바꿈에 대한 ASCII 숫자입니다.)

예, 경계를 표시하는 테두리 레이블이있는 경우


답변

ViewModel 또는 Model에서이 작업을 수행 할 때 Environment.NewLine을 사용하면 지역화를 포함하여 가장 일관된 결과가 나타납니다. 보기에서도 직접 작동하지만 테스트하지는 않았습니다.

예:

보기에서

<Label Content="{Binding SomeStringObject.ParameterName}" />

ViewModel에서 :

SomeStringObject.ParameterName = "First line" + Environment.NewLine + "Second line";


답변

단추와 같은 컨트롤에 여러 줄이있는 도구 설명을 추가하는 방법의 예입니다. 툴팁은 너비가 제한되어 있으므로 문장이 너무 넓 으면 줄 바꿈됩니다.

<!-- Button would need some properties to make it clickable.-->
<Button>
   <Button.ToolTip>
      <TextBlock Text="Line 1&#x0a;Line 2" MaxWidth="300" TextWrapping="Wrap"/>
    </Button.ToolTip>
</Button>

VS2019 + .NET 4.6.1 + WPF에서 테스트되었습니다.


답변

<Label xml:space="preserve">text content
another line</Label>

너무 작동하는 것 같습니다


답변