縦書きにしたい。 WPFで単純なグリッドを使用して、領域のサイズを自動調整します。しかし、RotateTransform
を使用すると、すべての計算が正しくありません。これを解決する方法はありますか?
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
この画像では、私の意味がわかります。中央部分のサイズを自動調整したい場合、「Width」または「Height」プロパティを使用できません。どちらもサイズ変更の結果が正しくないためです。幅= 120pxは水平(元の)幅を増やし、完全な行を120ピクセルにします。 Height = 120pxは、テキストを120ピクセルの高さにします。
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>