Подтвердить что ты не робот

Как повернуть текст в WPF, сохраняя функцию авторазмера

Я хочу иметь вертикальный текст. Я просто использую простую сетку в WPF для автоматической настройки областей. Но при использовании RotateTransform все вычисления ошибочны. Любая идея, как это решить?

        <Grid.RowDefinitions>
            <RowDefinition Height="*" />
            <RowDefinition Height="Auto" />
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>

WPF rotate text На этом изображении вы видите, что я имею в виду. Если теперь я хочу автоматизировать размер средней части, я не могу использовать свойство "Ширина" или "Высота", потому что оба повысят неправильный результат калибровки. Ширина = 120px увеличит горизонтальную (оригинальную) ширину и сделает полный ряд 120pixel. Высота = 120px сделает высоту текста 120pixel.

4b9b3361

Ответ 1

Используйте LayoutTransform вместо RenderTransform. Он применяется во время макета, а не во время рендеринга.

Ответ 2

Как и Рейчел, используйте LayoutTransform

<TextBlock Text="Goodday" >
   <TextBlock.LayoutTransform>
     <RotateTransform Angle="90" />
   </TextBlock.LayoutTransform>  
</TextBlock>

Ответ 3

<TextBlock Height="14" 
    x:Name="TextBlock1" 
    Text="Vertical Bottom to Up" Margin="73,0,115,0" RenderTransformOrigin="0.5,0.5" > 
    <TextBlock.RenderTransform> 
        <TransformGroup> 
            <ScaleTransform/> 
            <SkewTransform/> 
            <RotateTransform Angle="-90"/> 
            <TranslateTransform/> 
        </TransformGroup> 
    </TextBlock.RenderTransform> 
</TextBlock>