WPF:如何防止子画面控件在画布中旋转

时间:2015-12-16 11:32:18

标签: wpf

enter image description here

在标记为“不正常”的附加图像标签中,在画布内旋转。我想阻止这种行为。

请帮帮我。

1 个答案:

答案 0 :(得分:0)

由于标签是子对象,它们将与父对象一起旋转 - 这就是它们的目的。

您必须将父旋转的反向应用于标签 - 确保保持位置偏移正确。通过使用第二个属性来保持逆并将其绑定到标签的旋转变换,这将是最简单的。

因此每个TextBlock都需要以下内容:

<TextBlock.LayoutTransform>
    <RotateTransform CenterX="0.5" CenterY="0.5" Angle="{Binding InverseParentAngle}"/>
</TextBlock.LayoutTransform>

中心属性确保旋转位于标签的中心附近,InverseParentAngle是画布旋转的负值。

您可以通过取消值的转换器将角度绑定到画布的角度,而不是必须维护第二个属性。这可能是一种更清洁的方法。

<TextBlock.LayoutTransform>
    <RotateTransform CenterX="0.5" CenterY="0.5" Angle="{Binding (Canvas.Angle),RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Canvas}}, Converter={StaticResource=InverseConverter}"/>
</TextBlock.LayoutTransform>