2014-09-04 58 views
1

孔頁面的Canvas.ZIndex是什麼?我試圖將背景中的元素放在所有其他元素的下面。我將ZIndex設置爲-1,但沒有任何變化。元素仍然在前面。WinRT Z-Index頁

是否有其他可能性來更改訂單?

感謝

我有一個網格1行1列。在這個網格上,我放了另外兩個網格。 在我的第一個網格上畫線,第二個是邊框。 (還有很多其他控件) 喜歡這裏

<Grid> 
    <Grid> 
     lines 
    </Grid> 
    <Grid> 
     borders 
     rectangles 
    </Grid> 
</Grid> 

現在線應繪製了邊界,但矩形下。

我該怎麼做?

+0

依賴,但如果你認爲你的結構作爲DOM的,第一個元素是在底部。可能會分享一個傳達你的問題的片段。 – 2014-09-04 15:11:44

回答

4

您在XAML影響z-index的方式有兩種:

  1. 你把邏輯上後(或以下)的東西的其他商品XAML
  2. 您使用Canvas並設置Canvas.ZIndex

這些是你的選擇。

0

ZIndex是本地的。因此,第一個網格中的所有元素都將首先繪製(如您當前的示例中所示),或者如果這些網格中的任何一個都具有ZIndex,則最後繪製該元素。

如果你想交錯,那麼你應該有

<Grid>border</Grid> 
<Grid>lines</Grid> 
<Grid>rectangles</Grid> 

這不是畫布的直接孩子什麼也不做的元素上設置Z-索引。

畫布繪製循環是在你的結構有點像這樣

// make unique small-to-big list of all ZIndex of all elements of a canvas 
var zvalues = canvas.elements.Select(ZIndex).Unique().Sort(DESC); 
// draw them back to front 
foreach (var z in zvalues) { 
    foreach (var e in canvas.elements.Where(e=>e.ZIndex==z)) { 
     e.Draw(); 
    } 
}