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에서는 값을 사용 " "
하거나"
"
예를 들면 :
<Label Content="Lorem ipsum" />
( “10”은 줄 바꿈의 ASCII 번호입니다.)
또는
<Label Content="Lorem
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
Line 2" MaxWidth="300" TextWrapping="Wrap"/>
</Button.ToolTip>
</Button>
VS2019 + .NET 4.6.1 + WPF에서 테스트되었습니다.
답변
<Label xml:space="preserve">text content
another line</Label>
너무 작동하는 것 같습니다