Поделиться через


Практическое руководство. Задание источника преобразования с помощью относительных значений

Обновлен: Ноябрь 2007

В этом примере показано использование относительных значений для указания RenderTransform, применяемого к FrameworkElement.

При повороте, масштабировании или наклонеFrameworkElement с помощью свойства RenderTransform, значение по умолчанию применяет преобразование к верхнему левому углу элемента. Если вы хотите повернуть, отмасштабировать или наклонить объект относительно центра элемента, можно установить центр элемента центром преобразования. Однако, это решение требует знания размера элемента. Простым способом применения преобразования к центру элемента является установка его свойства RenderTransformOrigin в значение (0,5, 0,5), вместо установки центрального значения преобразования.

Пример

В следующем примере используется RotateTransformдля поворота Button на 45 градусов по часовой стрелке. Поскольку в примере не задан центр, кнопка поворачивается вокруг точки (0, 0), то есть верхнего левого угла. RotateTransform применяется к свойству RenderTransform.

На следующем рисунке показан результат преобразования для следующего примера.

Поворот на 45 градусов по часовой стрелке с использованием свойства RenderTransform
Преобразованная кнопка с использованием RenderTransform

<Border Margin="30" 
  HorizontalAlignment="Left" VerticalAlignment="Top"
  BorderBrush="Black" BorderThickness="1" >
  <StackPanel Orientation="Vertical">
    <Button Content="A Button" Opacity="1" />
    <Button Content="Rotated Button">
      <Button.RenderTransform>
        <RotateTransform Angle="45" />
      </Button.RenderTransform>
    </Button>
    <Button Content="A Button" Opacity="1" />
  </StackPanel>
</Border>

В следующем примере также используется RotateTransform для поворота элемента Button на 45  по часовой стрелке; тем не менее, этот пример устанавливает RenderTransformOrigin кнопки (0.5, 0.5). В результате чего, вращение применяется к центру кнопки, а не к ее верхнему левому углу.

На следующем рисунке показан результат преобразования для следующего примера.

Поворот на 45 градусов с использованием свойство RenderTransform с RenderTransformOrigin, равным (0,5, 0,5)
Кнопка, преобразованная по центру

<Border Margin="30"   
  HorizontalAlignment="Left" VerticalAlignment="Top"
  BorderBrush="Black" BorderThickness="1">
  <StackPanel Orientation="Vertical">
    <Button Content="A Button" Opacity="1" />
    <Button Content="Rotated Button"
      RenderTransformOrigin="0.5,0.5">
      <Button.RenderTransform>
        <RotateTransform Angle="45" />
      </Button.RenderTransform>
    </Button>
    <Button Content="A Button" Opacity="1" />
  </StackPanel>
</Border>

Дополнительные сведения об объектах FrameworkElement см. в разделе Общие сведения о классах Transform.

См. также

Основные понятия

Общие сведения о классах Transform

Ссылки

Transform

Другие ресурсы

Разделы руководства, посвященные преобразованиям