将内容的旋转绑定到祖先的旋转

时间:2016-01-24 14:05:02

标签: wpf xaml data-binding

我想创建一个包含自定义内容的控件。 内部文本应沿相反方向旋转,以便始终垂直显示。要做到这一点,我必须将文本的旋转角度绑定到文本祖先的旋转角度。怎么做?对不起我的英语不好。

1 个答案:

答案 0 :(得分:0)

这样的事情应该有效。重要的是在子元素旋转之前和之后通过两个镜像变换反转旋转方向。

<Grid Background="AliceBlue" Width="200" Height="200"
      RenderTransformOrigin="0.5,0.5">
    <Grid.RenderTransform>
        <RotateTransform Angle="45"/>
    </Grid.RenderTransform>

    <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center"
               Text="Hello" RenderTransformOrigin="0.5,0.5">
        <TextBlock.RenderTransform>
            <TransformGroup>
                <ScaleTransform ScaleX="-1"/>
                <RotateTransform Angle="{Binding RenderTransform.Angle,
                    RelativeSource={RelativeSource AncestorType=Panel}}"/>
                <ScaleTransform ScaleX="-1"/>
            </TransformGroup>
        </TextBlock.RenderTransform>
    </TextBlock>
</Grid>