2

基本的に、FooControl(高さ/幅を明示的に設定していませんGrid) を に追加しました。

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition />
        <RowDefinition />
    </Grid.RowDefinitions>
    <FooControl x:Name="HWFoo" Content="HelloWorld" Grid.Row="0">
        <FooControl.RenderTransform>
            <TransformGroup>
                <RotateTransform Angle="270" />
                <TranslateTransform Y="{Binding ActualWidth, ElementName=HWFoo}" />
            </TransformGroup>
        </FooControl.RenderTransform>
    </FooControl>
</Grid>

しかし、現在の問題は、FooControl が行全体を埋め尽くし、それが変換されると非常に奇妙に見えることです (高さ/幅のため)。


FooControl はカスタム コントロールです。では、ArrangeOverride または MeasureOverride で何かを行う必要がありますか? または、XAML で修正できる何か間違ったことをしていますか。

4

3 に答える 3

5

1 - LayoutTransform を使用する
2 -HorizontalAlignment伸びないように Left または Right に設定する

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition />
        <RowDefinition />
    </Grid.RowDefinitions>
    <FooControl x:Name="HWFoo" Content="HelloWorld" Grid.Row="0" HorizontalAlignment="Left">
        <FooControl.LayoutTransform>
            <TransformGroup>
                <RotateTransform Angle="270" />
                <TranslateTransform Y="{Binding ActualWidth, ElementName=HWFoo}" />
            </TransformGroup>
        </FooControl.LayoutTransform>
    </FooControl>
</Grid>
于 2011-04-05T16:00:40.020 に答える
2

「奇妙な」という言葉の意味がわかりませんが、RenderTransform の代わりに LayoutTransform を試してみることをお勧めします - それがおそらく問題です。

ただし、LayoutTransform は RenderTransform よりも大幅に遅いことに注意してください。

于 2011-04-05T15:57:44.110 に答える
1

RenderTransformの代わりにLayoutTransformを使用します。

http://patconroy.wordpress.com/2009/03/24/layouttransform-vs-rendertransform-in-wpf/

単純 :)

于 2011-04-05T15:57:41.640 に答える