XAMLで変換の入れ子(ネスト)はできるの?

  • このエントリーをはてなブックマークに追加
  • LINEで送る

WPFにおける開発でGeometry変換に対する入れ子(ネスト)はGeometryGroupを入れ子にすることで可能なことは知っていました。

GeometryGroup
┗ GeometryGroup
┃  ┗ Geometry
┃  ┗ TranferGroup
┃      ┣ TranslateTransform
┃      ┣ ScaleTransform
┃      ┗ RotateTransform
┗ GeometryGroup
    ┗ TranferGroup
        ┣ TranslateTransform
        ┣ ScaleTransform
        ┗ RotateTransform

(それぞれChildrenやTranferに加えています)

最上位のGeometryGroupでは全ての変換が行われた結果がみることができます。

では同じことをXAMLで表現するにはどうしたらいいのでしょう?

XAMLでは<RenderTransfer>を利用し、各変換を同時に行うには<TranslateTransform><ScaleTransform><RotateTransform>を利用します。
例えばCanvas内で変換するには

となります。

変換を入れ子にするにはTransferGroupを重ねればいいので

このようにすると一か所で拡大縮小と座標反転がおこなえるようになります。

SNSでもご購読できます。

スポンサー リンク

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください