UIElement
一般に、いわゆる「透視変換」を使用して、3-D 効果 (x、y、z、回転 X、回転 Y、回転 Z...) を適用できます。
<Image x:Name="img1" HorizontalAlignment="Left" Height="200" Width="200" Source="img1.jpg">
<Image.Projection>
<PlaneProjection CenterOfRotationY="3" RotationX="40"/>
</Image.Projection>
</Image>
ただし、Z-Index(Z-Sorting) はありません! UIElements がオーバーラップすると、遠近法で適切にレンダリングされません。
AS3 では、この関数を使用してオブジェクトを zsort します。
public function zSort():void
{
var i:uint;
var zList:Array = [];
for (i=0; i<this.numChildren; i++)
{
var mtx:Matrix3D = this.getChildAt(i).transform.getRelativeMatrix3D(this.parent);
zList.push( { sp:this.getChildAt(i), z:mtx.position.z } );
}
zList.sortOn("z", Array.NUMERIC | Array.DESCENDING);
for (i=0; i<this.numChildren; i++)
{
this.setChildIndex(zList[i].sp, i);
}
}
C#に同様のソリューションはありますか? または、Windows 8で異なる動作をしますか?
このSilverlightチュートリアル「Silverlight 3で投影を使用して3Dカルーセルを構築する」 画像が自動的にzindexのように見えるのは、WINRTで何が起こるのでしょうか?