読者です 読者をやめる 読者になる 読者になる

亀岡的プログラマ日記

京都のベッドタウン、亀岡よりだらだらとお送りいたします。

RenderTransformとlayoutTransform

ransformを設定するプロパティとして、各UIElementにはRenderTransformとLayoutTransformの2つのプロパティが用意されています。

プロパティ名 機能
RenderTransform 内部のレイアウト処理が行われた後に適用されるため、レイアウトシステムは変更を認識できないが、パフォーマンスにすぐれている
LayoutTransform 内部のレイアウト処理が行われる前に適用されるため、レイアウトシステムが変形を認識できる

この2つのプロパティの大きな違いはレイアウトシステムが変形を認識するかしないかという部分なのですが、具体的にどういうことなのかは下記のXAMLコードをXamlPad等で実行して確認していただくと一目瞭然ですので、是非試してみてください。

今更ながら、Transformを駆使せざるを得ない事態になってしまったので、メモ的に。

つまりは親コンテナがレイアウトする場合には、Transform後のUIをレイアウトするかTransform前のUiをレイアウトするかの違いが出ちゃうんだねえ。

上の例ではUniformGridだけど、たとえばViewBoxとかはどうなっちゃうのかね?

というわけで上記サイトのコードにViewboxを放り込んで実験・・・

結論:同じ
(考えてみたらVieweboxこそレイアウト時じゃなく描画時に動くものじゃないか。。。)