2009-02-20 7 views
6

मैं प्रोग्राम के रूप में माता पिता के नियंत्रण के "बच्चे" संग्रह में जोड़कर सिल्वरलाइट 2 में एक और करने के लिए एक UserControl जोड़ रहा का उपयोग किए बिना प्रतिपादन आदेश (ZOrder) सिल्वरलाइट में नियंत्रित करना। पहले यह ठीक काम करता है। अगर मैं खिड़की के लिए कुछ और करता हूं (मेरे मामले में मैं पूरे पैनल को देखने के बाहर स्क्रॉल कर रहा हूं तो फिर दृश्य में वापस आ रहा हूं) तो यह स्पष्ट रूप से रेंडर ऑर्डर बदलता है और मेरा नियंत्रण दूसरों के पीछे होने का कारण बनता है। मैं अपनी खिड़की को शीर्ष पर रखने के लिए मजबूर करने के लिए इस व्यवहार को नियंत्रित करने का एक तरीका खोज रहा हूं। कैनवास नियंत्रण में एक ZOrder संपत्ति है जो आपको इसे सेट करने की अनुमति देती है, लेकिन मैं कैनवास का उपयोग नहीं कर रहा हूं, मैं ग्रिड का उपयोग कर रहा हूं।कैनवास नियंत्रण

मैं Children.Insert का उपयोग करने और सूचकांक के साथ खिलवाड़ के साथ खेला है और उस के साथ ही आदेश प्रस्तुत करना बदल जाता है, लेकिन यह है कि मुद्दे के समाधान के लिए एक kludgey रास्ता की तरह लगता है। मैं अपने नियंत्रण को शीर्ष पर कैसे मजबूर कर सकता हूं?

--Matt

उत्तर

4

एक ग्रिड में, ZOrder आदेश या बच्चे से निर्धारित किया जाना चाहिए। स्थिति 0 नीचे स्थित है, स्थिति 1 स्थिति 0 के शीर्ष पर है और इसी तरह।

मुझे यकीन नहीं है कि मैं सहमत हूं कि आप एक ग्रिड के साथ Canvas.ZIndex का उपयोग कर सकते हैं - यह कैनवास की एक संलग्न संपत्ति है, इसलिए केवल तभी उपलब्ध होगा जब आपका ग्रिड कैनवास में हो।

http://msdn.microsoft.com/en-us/library/system.windows.controls.canvas.zindex(VS.95).aspx

1

आप एक ग्रिड में Canvas.ZIndex उपयोग करने के लिए सक्षम होना चाहिए, यह वास्तव में misnamed है और Panel.ZIndex होना चाहिए, लेकिन यह काम करना चाहिए।

7

Canvas.ZIndex एक ग्रिड (और UIElement से प्राप्त किसी भी अन्य नियंत्रण) के लिए काम करेंगे।

आप http://msdn.microsoft.com/en-us/library/bb979730(VS.95).aspx कोई भी चीज जो UIElement (Silverlight में सभी गाया तत्वों के लिए आधार वर्ग) से निकला है से देख सकते हैं Canvas.Top और Canvas.Left के साथ ही, Canvas.ZIndex संपत्ति का समर्थन करता है।