2

一般来说,您可以UIElement使用所谓的“透视变换”将 3-D 效果(x,y,z,rotationX,rotationY,rotationZ...)应用于任何效果:

<Image x:Name="img1" HorizontalAlignment="Left" Height="200" Width="200" Source="img1.jpg">
        <Image.Projection>
            <PlaneProjection CenterOfRotationY="3" RotationX="40"/>
        </Image.Projection>
</Image>

但没有 Z 索引(Z 排序)!当 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

如果您将您的Image放在Canvas中,您将能够设置zIndex 依赖属性

于 2012-08-06T01:23:58.583 回答