2012-08-06 68 views
2

一般來說,你可以申請3-d效果(X,Y,Z,的rotationX,的rotationY,的rotationZ ...)用所謂的 「透視變換」 任何UIElement如何Z指數(Z排序)Windows 8 UIElements在3D透視?

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

,但沒有ž - 索引(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教程"Using projection to build a 3D carousel in Silverlight 3" 圖像似乎是zindex自動witch不是在WINRT中發生什麼?

回答

0

如果您將Image置於Canvas中,您將可以設置zIndex dependency property

+0

但是如何對它們進行透視?像3D旋轉木馬或旋轉立方體中的圖像? – isa 2012-08-06 12:44:05