문제

다음과 같은 WPF의 라벨 텍스트에 Newline을 추가하려면 어떻게해야합니까?

<Label>Lorem 
  ipsum</Label>
도움이 되었습니까?

해결책

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

TextBlock은 어린이로 인라인 객체 모음을 수용하기 때문에 TextBlock을 사용해야합니다. 따라서 TextBlock 요소에 세 가지 인라인 항목을 제공합니다 : run text = "lorem", linebreak 및 run text = "ipsum".

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

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

레이블이 하나의 콘텐츠 자식 요소를 수락하기 때문입니다.

또한 유스 케이스가 무엇인지 정확히 확실하지 않지만 라벨 요소 안에 텍스트 블록을 배치했습니다. 반복적입니까? 실제로, 당신의 필요에 따라. 다음은 두 요소의 차이점에 대한 좋은 기사입니다. 레이블과 텍스트 블록의 차이점

다른 팁

WPF에서는 값을 사용할 수 있습니다 "&#10;" 또는 "&#xA;"

예를 들어:

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

( "10"은 Newline의 ASCII 번호입니다)

또는

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

( "A"는 16 진수의 Newline의 ASCII 번호입니다)

Example, with a border arround label to show boundry

ViewModel 또는 Model 에서이 작업을 수행 할 때 환경을 사용하는 것이 현지화를 포함하여 가장 일관된 결과를 가지고 있음을 발견했습니다. 보기에서도 직접 작동해야하지만 테스트하지 않았습니다.

예시:

관점에서

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

ViewModel에서 :

SomeStringObject.ParameterName = "First line" + Environment.NewLine + "Second line";
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top