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

7
我已经找到了如何赋予旋转值(element.RenderTransform = new RotateTransform(x))的方法,但是如何获取元素的旋转值呢?
比如说,如果我想让一个UI元素与另一个UI元素具有相同的旋转角度,我应该怎么做呢?
2个回答

18

你可以通过以下方式获取旋转值:

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

如果你想让另一个UI元素以同样的方式旋转,你可以直接赋相同的转换值:

element2.RenderTransform = element.RenderTransform;

3
您可以为RotateTransform命名,然后绑定其属性。例如,在您的“主”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>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接