次の方法で共有


方法: UIElement を水平方向または垂直方向に反転する

この例では、ScaleTransform を使用して UIElement を水平方向または垂直方向に反転する方法を示します。 この例では、Button コントロール (UIElementの種類) は、RenderTransform プロパティに ScaleTransform を適用することによって反転されます。

ボタンを反転させる図

次の図は、反転するボタンを示しています。

変換のないボタン
反転する UIElement

ボタンを作成するコードを次に示します。

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

ボタンを水平方向に反転させる図

ボタンを水平方向に反転するには、ScaleTransform を作成し、その ScaleX プロパティを -1 に設定します。 ボタンの RenderTransform プロパティに ScaleTransform を適用します。

<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 のボタン

ボタンを垂直方向に反転させる図

ボタンを垂直方向に反転するには、ScaleX プロパティではなく、ScaleTransform オブジェクトの ScaleY プロパティを設定します。

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

中心の周りで垂直方向に反転されるボタン を中心に上下に反転したボタン
垂直方向に反転されたボタン

関連項目