1

(Windows 8.1、Windows ストア アプリ)

回転したテキストをコンテナー (例: グリッド) に配置し、そのコンテナーに回転したテキストからその寸法を取得させたいと思います。でも...

このコード:

<Canvas Background="Gray">

    <Grid
        Canvas.Left="100"
        Canvas.Top="100"
        Background="LightGray">
        <TextBlock Text="Text rotated 270º">
            <TextBlock.RenderTransform>
                <RotateTransform Angle="270" />
            </TextBlock.RenderTransform>
        </TextBlock>
    </Grid>

<Canvas>

...次のようにレンダリングします。

ここに画像の説明を入力

回転が適用された後、グリッドが TextBlock から幅と高さを取得することを期待していました。ただし、グリッドは、回転が適用される前に TextBlock から寸法を取得しているようです。

コンテナ (つまりグリッド) をコンテンツ (つまり TextBlock) の回転サイズに合わせるにはどうすればよいですか?

4

1 に答える 1

6

LayoutTransform を探しています。これは、Windows 8 でこれを実現する方法についての素晴らしいブログ投稿です。

cookplexのこのツールキットには、既に 1 つが組み込まれているようです。LayoutTransformControlを使用できます。このツールキットはNugetから入手できます。

コントロールのコンテンツとして追加し、その中にコンテンツを配置します。

<Grid
    Canvas.Left="100"
    Canvas.Top="100"
    Background="LightGray">
    <controls:LayoutTransformControl x:Name="transformControl">
        <controls:LayoutTransformControl.Transform>
            <RotateTransform x:Name="rotateTransform" Angle="270"/>
        </controls:LayoutTransformControl.Transform>
        <TextBlock Text="Hello LayoutTransformControl" />
    </controls:LayoutTransformControl>
 </Border>
于 2013-10-18T20:30:30.540 に答える