1

コントロールを境界線で囲んだTextBlockので、何がスペースを占めているかがわかります。

ここに画像の説明を入力

XAML は次のとおりです。

<Border BorderBrush="Cyan" BorderThickness="3">
    <TextBlock Style="{StaticResource subtitle}" Text="{Binding Title}" >
        <TextBlock.RenderTransform>
            <RotateTransform Angle="90" />
        </TextBlock.RenderTransform>
    </TextBlock>
</Border>

問題は、これが必要以上のスペースを占有していることです。静的な幅を設定すると、次のようになります。

ここに画像の説明を入力

助言がありますか?

4

2 に答える 2

6
<Setter Property="LayoutTransform"> 
    <Setter.Value> 
        <RotateTransform Angle="90" /> 
    </Setter.Value> 
</Setter> 

これが起こったのは、ほとんどの Web ベース アプリケーションと同様に、レンダリング イベントで見たり処理したりするのに慣れているもののほとんどがトリガー/起動される一連のイベントがあるためです。 100% 確信があるわけではありませんが、事前レンダリング中に LayoutTransform が発生すると本当に考えています。

于 2011-12-20T18:23:13.123 に答える
0

実行時にテキストブロックを作成して回転させるときに、同じ問題が発生しました。設定するだけで解決しました

tb.Margin = .......
tb.HorizontalAlignment = Windows.UI.Xaml.HorizontalAlignment.Left;
tb.VerticalAlignment = Windows.UI.Xaml.VerticalAlignment.Top;
RotateTransform rt = new RotateTransform();
rt.Angle = -40;
tb.RenderTransform = rt;

それらを設定していないように見えますが、変換は中央のテキストで計算を行い、幅を追加して希望の場所に配置しています...

于 2014-11-23T15:11:58.363 に答える