2009-11-26 8 views
5

मेरे पास कुछ नियंत्रण प्रोग्रामेटिक रूप से एक स्टैकपैन में जोड़े गए हैं। मैं क्या करना चाहता हूं कि मैं चाहता हूं कि इस स्टैकेपेल में किसी एक नियंत्रण को दूसरे नियंत्रण में रखा जाए। विशेष रूप से, मैं इस स्टैक पैनल में एक छवि पर बटन रखना चाहता हूं। मैं C# codebehind में zindex प्रॉपर्टी नहीं ढूंढ सका। हालांकि यह बहुत ही सरल समस्या प्रतीत होता है लेकिन मैं इस समस्या को हल करने के लिए कोई सुराग नहीं ढूंढ पा रहा हूं। कोई भी कृपया ...... ??हम रजत रोशनी नियंत्रण के प्रोग्रामिंग के ज़िन्डेक्स को कैसे बदल सकते हैं?

उत्तर

7

कैनवास पर अपने सभी नियंत्रण रखने का प्रयास करें। तो फिर तुम साथ zindex सेट कर सकते हैं:

this.controlName.SetValue(Canvas.ZIndexProperty, 10d); 
3

केवल Canvas पैनल एक ZIndex संपत्ति का समर्थन करता है। Stackpanel ऐसा नहीं करता है क्योंकि प्रत्येक आइटम को पैनल में दूसरे के बाद एक रखा जाता है, इसलिए उन्हें एक-दूसरे को ओवरलैप नहीं करना चाहिए। यह कई बार परेशान हो सकता है जब आपने एनिमेटेड आइटमों को स्थानांतरित करने में परिवर्तन किया है क्योंकि पिछली धारणा वास्तव में सच नहीं है।

सामान्य रूप से यदि आपको दृश्य स्टैक में आइटम रखने की आवश्यकता है तो Stackpanel इसके लिए सही जगह नहीं है। शायद Canvas या आप Grid का उपयोग कर सकते हैं जहां किसी तत्व की ओरिएंटल स्थिति सेल में "ज़ॉर्डर" निर्धारित करती है।

+4

यहां तक ​​कि एक ग्रिड में तत्वों के साथ, आप .SetValue (Canvas.ZIndexProperty, myValue) का उपयोग कर सकते हैं; और यह रनटाइम पर काम करेगा। – Jeb

2
XAML से

:

<StackPanel Canvas.ZIndex="1"> 
</StackPanel> 
संबंधित मुद्दे