如何在WPF中获取UI元素的旋转值

时间:2010-04-05 17:15:11

标签: wpf rotation

我已经想出如何指定旋转值(element.RenderTransform = new RotateTransform(x)),但是如何获得元素的旋转值?

例如,如果我想让一个ui元素与另一个ui元素具有相同的旋转角度,我该怎么做?

2 个答案:

答案 0 :(得分:16)

您可以通过执行以下操作获取旋转值:

RotateTransform rotation = element.RenderTransform as RotateTransform;
if (rotation != null) // Make sure the transform is actually a RotateTransform
{
    double rotationInDegrees = rotation.Angle;
    // Do something with the rotationInDegrees here, if needed...
}

如果您想以相同的方式再次旋转UIelement,您可以只分配相同的变换:

element2.RenderTransform = element.RenderTransform;

答案 1 :(得分:3)

您可以命名RotateTransform,然后绑定到其属性。例如,在'main'ui元素中,您将变换定义为:

<TextBlock Text="MainBox">
  <TextBlock.RenderTransform>
    <RotateTransform Angle="20" 
                     CenterX="50" 
                     CenterY="50" 
                     x:Name="m"/>
  </TextBlock.RenderTransform>
</TextBlock>

然后你可以从另一个元素绑定到那个转换:

<TextBlock Text="SecondBox">
  <TextBlock.RenderTransform>
    <RotateTransform Angle="{Binding Angle, ElementName=m}"
                     CenterX="{Binding CenterX, ElementName=m}" 
                     CenterY="{Binding CenterY, ElementName=m}"/>
  </TextBlock.RenderTransform>
</TextBlock>