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


Как перевернуть UIElement по горизонтали или вертикали

В этом примере показано, как использовать ScaleTransform для переворачивания UIElement по горизонтали или вертикали. В этом примере элемент управления Button (тип UIElement) перевернут путем применения ScaleTransform к свойству RenderTransform.

Иллюстрация для переключения кнопки

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

Кнопка без преобразования
UIElement для переворачивания

Ниже показан код, создающий кнопку.

<Button Content="Flip me!" Padding="5">
</Button>

Иллюстрация для горизонтального переворачивания кнопки

Чтобы перевернуть кнопку горизонтально, создайте ScaleTransform и задайте для свойства ScaleX значение -1. Примените ScaleTransform к свойству RenderTransform кнопки.

<Button Content="Flip me!" Padding="5">
  <Button.RenderTransform>
    <ScaleTransform ScaleX="-1" />
  </Button.RenderTransform>
</Button>

кнопка перевернута горизонтально вокруг точки (0,0)
Кнопка после применения ScaleTransform

Иллюстрация для переключения кнопки на месте

Как видно на предыдущем рисунке, кнопка была перевернута, но она также была перемещена. Это связано с тем, что кнопка была перевернута с верхнего левого угла. Чтобы перевернуть кнопку, необходимо применить ScaleTransform к центру, а не к его углу. Простой способ применить ScaleTransform к центру кнопок — задать для свойства RenderTransformOrigin кнопки значение 0,5, 0.5.

<Button Content="Flip me!" Padding="5"
  RenderTransformOrigin="0.5,0.5">
  <Button.RenderTransform>
    <ScaleTransform ScaleX="-1" />
  </Button.RenderTransform>
</Button>

кнопка перевернута по горизонтали относительно центра
Кнопка с RenderTransformOrigin 0.5, 0.5

Иллюстрация для вертикального переворачивания кнопки

Чтобы перевернуть кнопку по вертикали, задайте свойство ScaleY объекта ScaleTransform вместо свойства ScaleX.

<Button Content="Flip me!" Padding="5"
  RenderTransformOrigin="0.5,0.5">
  <Button.RenderTransform>
    <ScaleTransform ScaleY="-1" />
  </Button.RenderTransform>
</Button>

Кнопка перевернута по вертикали относительно своего центра
Вертикально перевернутая кнопка

См. также