[wpf] WPF TextBlock의 텍스트 세로 정렬
TextBlock 내부의 텍스트에 세로 가운데 맞춤을 어떻게 할당합니까? TextAlignment 속성을 찾았지만 가로 텍스트 맞춤입니다. 세로 텍스트 정렬을 위해 어떻게합니까?
답변
텍스트 블록 자체는 수직 정렬을 할 수 없습니다
내가 찾은 가장 좋은 방법은 텍스트 블록을 테두리 안에 넣는 것이므로 테두리가 정렬됩니다.
<Border BorderBrush="{x:Null}" Height="50">
<TextBlock TextWrapping="Wrap" Text="Some Text" VerticalAlignment="Center"/>
</Border>
참고 : 이것은 그리드를 사용하는 것과 기능적으로 동일하며, 컨트롤이 나머지 레이아웃에 맞게 조정하는 방법에 따라 다릅니다.
답변
Orion Edwards Answer 는 어떤 상황에서도 작동 하지만 , 원할 때마다 테두리를 추가하고 테두리 속성을 설정하기가 어려울 수 있습니다. 또 다른 빠른 방법은 텍스트 블록의 안쪽 여백을 설정하는 것입니다.
<TextBlock Height="22" Padding="3" />
답변
TextBlock은 세로 텍스트 정렬을 지원하지 않습니다.
텍스트 블록을 그리드로 감싸고 HorizontalAlignment = “Stretch”및 VerticalAlignment = “Center”를 설정하여이 문제를 해결합니다.
이처럼 :
<Grid>
<TextBlock
HorizontalAlignment="Stretch"
VerticalAlignment="Center"
Text="Your text" />
</Grid>
답변
텍스트 블록 대신 레이블을 사용할 수 있습니다.
<Label Content="Hello, World!">
<Label.LayoutTransform>
<RotateTransform Angle="270"/>
</Label.LayoutTransform>
</Label>
답변
텍스트 줄 바꿈 없이 할 수 있다면 TextBlock을 Label로 바꾸는 것이 가장 간결한 방법이라고 생각합니다. 그렇지 않으면 다른 유효한 답변 중 하나를 따르십시오.
<Label Content="Some Text" VerticalAlignment="Center"/>
답변
TextBlock
내용의 수직 정렬을 지원하지 않습니다. 사용해야하는 경우 TextBlock
부모를 기준으로 정렬 해야합니다 .
그러나 Label
대신 사용할 수 있고 기능이 매우 유사한 경우 텍스트 내용을 배치 할 수 있습니다 .
<Label VerticalContentAlignment="Center" HorizontalContentAlignment="Center">
I am centred text!
</Label>
는 Label
기본적으로 경계를 채우도록 확장되므로 레이블의 텍스트가 가운데에 배치됩니다.
답변
나를 VerticalAlignment="Center"
위해이 문제를 해결하십시오.
이것은 TextBlock
그리드에 싸여 있기 때문에 가능 하지만 실제로 wpf의 모든 것입니다.