2

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で何が起こるのでしょうか?

4

1 に答える 1

0

Canvasに配置Imageすると、 zIndex 依存関係プロパティを設定できるようになります。

于 2012-08-06T01:23:58.583 に答える