Comment pouvons-nous modifier l'indice z d'un contrôle silverlight par programme?
-
05-07-2019 - |
Question
J'ai quelques contrôles ajoutés dans un stackpanel par programmation. Ce que je veux faire, c'est que je veux que l'un des contrôles de ce stackpanel soit placé sur un autre contrôle. Plus précisément, je veux placer le bouton sur une image dans ce panneau de pile. Je n'ai pas pu trouver la propriété zindex dans c # codebehind. Bien que cela semble un problème très simple, mais je suis incapable de trouver un indice pour résoudre ce problème. Quelqu'un s'il vous plait ...... ??
La solution
Essayez de placer tous vos contrôles sur Canvas. Ensuite, vous pouvez définir Zindex avec:
this.controlName.SetValue(Canvas.ZIndexProperty, 10d);
Autres conseils
Seul le panneau Canvas
prend en charge une propriété ZIndex
. Stackpanel ne le fait pas car chaque élément est placé l'un après l'autre dans le panneau, de sorte qu'ils ne doivent pas se chevaucher. Cela peut être un peu gênant lorsque vous avez des transformations animées déplaçant les éléments, car l'hypothèse précédente n'est pas réellement vraie.
En général, si vous devez placer des éléments dans une pile visuelle, le Stackpanel n’est pas le lieu idéal. Peut-être un Canvas
ou vous pourriez utiliser une Grille
où la position oridinale d'un élément détermine son "zorder". dans une cellule.
De xaml:
<StackPanel Canvas.ZIndex="1">
</StackPanel>