En el XAML, el orden predeterminado de los elementos es el inverso de cómo aparecen en el marcado (el último elemento en el XAML aparece en la parte superior de la pila).
Como prueba, escribí lo siguiente.
XAML:
<Window x:Class="Order.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Canvas Name="LayoutTest" Margin="0">
<Label Background="Red" Margin="0,0,0,0" Content="Added in XAML"/>
</Canvas>
</Grid>
</Window>
Código:
public MainWindow()
{
InitializeComponent();
for (int i = 0; i < 10; i++)
{
Label lbl = new Label();
lbl.Height = 100d;
lbl.Width = 100d;
lbl.MouseLeftButtonUp += rec_MouseLeftButtonUp;
lbl.Content = "Label number " + i.ToString();
lbl.Background = Brushes.White;
lbl.Foreground = Brushes.Black;
LayoutTest.Children.Add(lbl);
}
}
void rec_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
Label obj = sender as Label;
if (null == obj) return;
obj.Visibility = Visibility.Collapsed;
}
El resultado fue que los elementos añadidos en XAML aparecen en la parte inferior de la pila, en el orden descrito anteriormente. Los elementos añadidos en el código aparecen encima de ellos, y su orden es dictada por el orden en que se agregaron: el primer elemento agregado se encuentra en la parte inferior del pedido en particular, y se va subiendo en la pila a medida que se agregan.
Así, en el "fondo" de la pila es la etiqueta
"agregó en XAML", seguido por
"Número de etiqueta 0",
"etiqueta con el número 1",
... hasta ...
"Número de etiqueta 9" es el elemento superior inmediatamente visible.
¡Bother! Acabo de pasar 10 minutos demostrando lo equivocado. ;) La respuesta de Roy C a continuación es probablemente lo que estabas buscando, pero con un poco de suerte, esta respuesta será de alguna utilidad para alguien.
¿También? ¿También después de qué? El orden del mensaje no está arreglado aquí. –
No me di cuenta de eso al principio. Editado para eliminarlo. ¡Gracias! – Roy
'Canvas.ZIndex' funciona no solo con Canvas, sino también con otros contenedores. Ver [mi respuesta] (http://stackoverflow.com/questions/5474293/windows-phone-7-stack-order-of-images/5474733#5474733). –