Ответ 1
Используйте LayoutTransform
вместо RenderTransform
. Он применяется во время макета, а не во время рендеринга.
Я хочу иметь вертикальный текст. Я просто использую простую сетку в WPF для автоматической настройки областей. Но при использовании RotateTransform
все вычисления ошибочны. Любая идея, как это решить?
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
На этом изображении вы видите, что я имею в виду. Если теперь я хочу автоматизировать размер средней части, я не могу использовать свойство "Ширина" или "Высота", потому что оба повысят неправильный результат калибровки. Ширина = 120px увеличит горизонтальную (оригинальную) ширину и сделает полный ряд 120pixel. Высота = 120px сделает высоту текста 120pixel.
Используйте LayoutTransform
вместо RenderTransform
. Он применяется во время макета, а не во время рендеринга.
Как и Рейчел, используйте LayoutTransform
<TextBlock Text="Goodday" >
<TextBlock.LayoutTransform>
<RotateTransform Angle="90" />
</TextBlock.LayoutTransform>
</TextBlock>
<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>