如何:水平或垂直翻转 UIElement

此示例演示如何使用 ScaleTransform 水平或垂直翻转 UIElement。 在此示例中,通过将 ScaleTransform 应用于其 RenderTransform 属性来翻转 Button 控件(一种 UIElement)。

翻转按钮的插图

下图显示了要翻转的按钮。

A button with no transform
要翻转的 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>

A button flipped horizontally about (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>

A button flipped horizontally about its center
RenderTransformOrigin 为“0.5, 0.5”的按钮

垂直翻转按钮的插图

若要垂直翻转按钮,请设置 ScaleTransform 对象的 ScaleY 属性而不是其 ScaleX 属性。

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

A button flipped vertically about its center
垂直翻转按钮

另请参阅