¿Cómo podemos cambiar el índice z de un control de Silverlight mediante programación?
-
05-07-2019 - |
Pregunta
Tengo algunos controles agregados en un panel de apilamiento programáticamente. Lo que quiero hacer es que quiero que uno de los controles en este panel de la pila se coloque sobre otro control. Específicamente, quiero colocar el botón sobre una imagen en este panel de pila. No pude encontrar la propiedad zindex en c # codebehind. Aunque parece un problema muy simple pero no puedo encontrar ninguna pista para resolver este problema. Alguien por favor ...... ??
Solución
Intenta colocar todos tus controles en Canvas. Luego puedes configurar Zindex con:
this.controlName.SetValue(Canvas.ZIndexProperty, 10d);
Otros consejos
Solo el panel Canvas
admite una propiedad de ZIndex
. Stackpanel no lo hace porque cada elemento se coloca uno tras otro en el panel para que no se superpongan entre sí. Esto puede ser un poco molesto en los momentos en que se han animado transformaciones para mover los elementos porque la suposición anterior no es realmente cierta.
En general, aunque si necesita colocar elementos en una pila visual, Stackpanel no es el lugar adecuado para ello. Quizás un Canvas
o usted podría usar un Grid
donde la posición original de un elemento determina su " zorder " en una celda.
Desde xaml:
<StackPanel Canvas.ZIndex="1">
</StackPanel>