基本上,我在FooControl中添加了Grid(我没有明确设置Height / Width)。

<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中修复的问题。

最佳答案

1-使用LayoutTransform
2-将HorizontalAlignment设置为Left或Right以防止拉伸(stretch)

<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>

10-06 09:05