Wie können wir programmatisch z Index einer Silverlight-Steuerung ändern?
-
05-07-2019 - |
Frage
Ich habe einige Kontrollen in einem Stackpanel programmatisch hinzugefügt. Was ich tun möchte, ist, dass ich will, eines der Steuerelemente in diesem Stackpanel über eine andere Kontrolle gestellt werden. Insbesondere möchte ich in diesem Stapel Feldtaste auf ein Bild platzieren. Ich konnte nicht zindex Immobilien in c # Code-Behind finden. Obwohl es sehr einfaches Problem scheint, aber ich bin nicht in der Lage eine Ahnung zu finden, dieses Problem zu lösen. Wer bitte ...... ??
Lösung
Versuchen Sie, alle Ihre Kontrollen auf Leinwand platzieren. Dann können Sie einstellen ZIndex mit:
this.controlName.SetValue(Canvas.ZIndexProperty, 10d);
Andere Tipps
Nur die Canvas
Panel unterstützt eine ZIndex
Eigenschaft. Stackpanel nicht, da jeder Artikel einer nach dem anderen in der Platte platziert ist, so dass sie sich nicht überlappen sollten. Dies kann ein wenig ärgerlich manchmal sein, wenn Sie animierten Transformationen haben die Elemente zu bewegen, da die vorherige Annahme ist nicht wirklich wahr.
Im Allgemeinen jedoch, wenn Sie Elemente in einem visuellen Stapel platzieren müssen die Stackpanel für sie nicht der richtige Ort ist. Vielleicht ein Canvas
oder Sie können eine Grid
verwenden, wo die oridinal Position eines Elements in einer Zelle ihre „ZOrder“ bestimmt.
Von XAML:
<StackPanel Canvas.ZIndex="1">
</StackPanel>