Как получить значение поворота элемента пользовательского интерфейса в WPF - PullRequest
7 голосов
/ 05 апреля 2010

Я выяснил, как назначить значение поворота (element.RenderTransform = new RotateTransform (x)), но как мне получить значение поворота элемента?

Например, если бы я хотел, чтобы один элемент пользовательского интерфейса имел такой же угол поворота, как и другой элемент пользовательского интерфейса, как бы я это сделал?

Ответы [ 2 ]

16 голосов
/ 05 апреля 2010

Вы можете получить значение вращения, выполнив:

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;
3 голосов
/ 05 апреля 2010

Вы можете назвать RotateTransform и затем привязать его свойства. Например, в вашем «основном» элементе пользовательского интерфейса вы определяете преобразование так:

<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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...