0

StackPanel または他のコンテナー内の 1 つのアイテムをどのように回転させ、配置を維持するのですか?

私がやろうとしているのは、テキストが上下に配置されたアイテムの名前と、その真下に回転されない結果値を持つラベルを持つことです。この理由は、アイテムの名前がかなり長いのに、結果が 1 桁または 2 桁の数字にすぎないためです。ラベルが上下にあると、画面上でより多くのデータを絞り込むことができます。

アイテムは中心ではなく元の位置(左上?)を中心にピボットするように見えるため、アイテムの元の位置の下に中央に配置されていたアイテムは横に移動しますが、回転したアイテムの高さと幅の違いです。

これまでに試したコードは次のとおりです。

<StackPanel Orientation="Vertical" Margin="0, 0, 0, 0">
        <Label Name="x" Content="{Binding Path=SummarizedTestName}" Height="50" HorizontalAlignment="Center" FontSize="14">
            <Label.RenderTransform>
                <RotateTransform Angle="-90" />
            </Label.RenderTransform>
        </Label>
        <Label Content="{Binding Path=Count}" Width="50" HorizontalAlignment="Center" FontSize="14" />
</StackPanel>

私は TransformGroup を使用することを考えましたが、問題はコンパイル時に SummarizedTestName 文字列の長さが不明であることです (Entity Framework を使用してデータベースから取得されます)。水平方向と垂直方向の配置のバリエーションも試しましたが、物事が回転する方法のために、どれもうまく機能していないようです。

4

2 に答える 2

3

の代わりにLayoutTransformプロパティを使用してみてくださいRenderTransformは、レイアウトが解決された後RenderTransformに名前ラベルを回転させるため、カウント ラベルは、名前ラベルがまだ水平であるかのように配置されます。

を使用LayoutTransformすると、レイアウトの解像度の前に名前ラベルが回転し、カウント ラベルがきれいに整列するはずです。

于 2012-07-21T05:00:21.760 に答える
0

エレンの答えを使用して問題を解決しました。以下は結果です。

エレンの答えを使用して問題を解決しました。 以下は結果です。

代わりに LayoutTransform を使用すると、このコードは非常に簡単できれいになりました。

 <StackPanel Orientation="Vertical" >
    <Label Name="x" Content="{Binding Path=SummarizedTestName}" FontSize="14" HorizontalAlignment="Left" Margin="0, 0, 0, 10" >
       <Label.LayoutTransform>
           <RotateTransform Angle="90" />
       </Label.LayoutTransform>
    </Label>
    <Label Content="{Binding Path=Count}" FontSize="14" HorizontalAlignment="Right" VerticalAlignment="top" Width="50" />
</StackPanel>

ありがとうエレン!私はまだできないので、誰かが彼に投票してください;)

于 2012-07-21T05:41:29.003 に答える