मुझे नियंत्रण अन्य सभी नियंत्रणों के ऊपर दिखाई देने की आवश्यकता है, इसलिए यह आंशिक रूप से उन्हें ओवरले करेगा।अन्य सभी नियंत्रणों के ऊपर ओवरले नियंत्रण कैसे बनाएं?
उत्तर
आप एक कैनवास या अपने लेआउट में ग्रिड का उपयोग कर रहे हैं, तो नियंत्रण दे शीर्ष पर रखा जाना करने के लिए MSDN से एक उच्च zindex
:
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" WindowTitle="ZIndex Sample">
<Canvas>
<Rectangle Canvas.ZIndex="3" Width="100" Height="100" Canvas.Top="100" Canvas.Left="100" Fill="blue"/>
<Rectangle Canvas.ZIndex="1" Width="100" Height="100" Canvas.Top="150" Canvas.Left="150" Fill="yellow"/>
<Rectangle Canvas.ZIndex="2" Width="100" Height="100" Canvas.Top="200" Canvas.Left="200" Fill="green"/>
<!-- Reverse the order to illustrate z-index property -->
<Rectangle Canvas.ZIndex="1" Width="100" Height="100" Canvas.Top="300" Canvas.Left="200" Fill="green"/>
<Rectangle Canvas.ZIndex="3" Width="100" Height="100" Canvas.Top="350" Canvas.Left="150" Fill="yellow"/>
<Rectangle Canvas.ZIndex="2" Width="100" Height="100" Canvas.Top="400" Canvas.Left="100" Fill="blue"/>
</Canvas>
</Page>
आप zindex, निर्दिष्ट नहीं करते हैं पैनल के बच्चे उन्हें निर्दिष्ट क्रम में प्रस्तुत किए जाते हैं (यानी शीर्ष पर अंतिम)।
यदि आप कुछ और जटिल करना चाहते हैं, तो आप देख सकते हैं कि चाइल्डविंडो को सिल्वरलाइट में कैसे कार्यान्वित किया जाता है। यह आपके संपूर्ण रूटविज़ुअल पर एक सेमिट्रेंटेंट पृष्ठभूमि और पॉपअप ओवरले करता है।
ग्रिड के उसी सेल में नियंत्रण बैक-टू-फ्रंट प्रदान किए जाते हैं। तो दूसरे के ऊपर एक नियंत्रण डालने का एक आसान तरीका यह है कि इसे उसी सेल में रखा जाए।
यहां एक उपयोगी उदाहरण है, जो एक पैनल को पॉप अप करता है जो एक व्यस्त संदेश के साथ दृश्य (यानी उपयोगकर्ता नियंत्रण) में सब कुछ अक्षम करता है, जबकि लंबे समय से चलने वाले कार्य को निष्पादित किया जाता है (यानी BusyMessage
बाध्य संपत्ति शून्य नहीं है) :
<Grid>
<local:MyUserControl DataContext="{Binding}"/>
<Grid>
<Grid.Style>
<Style TargetType="Grid">
<Setter Property="Visibility"
Value="Visible" />
<Style.Triggers>
<DataTrigger Binding="{Binding BusyMessage}"
Value="{x:Null}">
<Setter Property="Visibility"
Value="Collapsed" />
</DataTrigger>
</Style.Triggers>
</Style>
</Grid.Style>
<Border HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Background="DarkGray"
Opacity=".7" />
<Border HorizontalAlignment="Center"
VerticalAlignment="Center"
Background="White"
Padding="20"
BorderBrush="Orange"
BorderThickness="4">
<TextBlock Text="{Binding BusyMessage}" />
</Border>
</Grid>
</Grid>
यह डब्ल्यूपीएफ में Adorners का एक आम कार्य है। आमतौर पर एडॉर्नर्स अन्य सभी नियंत्रणों से ऊपर दिखाई देते हैं, लेकिन अन्य उत्तरों जो ज़ेड-ऑर्डर का उल्लेख करते हैं, आपके मामले को बेहतर तरीके से फिट कर सकते हैं।
Robert Rossney का एक अच्छा समाधान है। यहां एक वैकल्पिक समाधान है जिसका मैंने अतीत में उपयोग किया है जो शेष सामग्री से "ओवरले" को अलग करता है। यह समाधान अन्य सभी चीज़ों के शीर्ष पर "ओवरले" रखने के लिए संलग्न संपत्ति Panel.ZIndex
का लाभ उठाता है। आप या तो कोड में "ओवरले" की दृश्यता सेट कर सकते हैं या DataTrigger
का उपयोग कर सकते हैं।
<Grid x:Name="LayoutRoot">
<Grid x:Name="Overlay" Panel.ZIndex="1000" Visibility="Collapsed">
<Grid.Background>
<SolidColorBrush Color="Black" Opacity=".5"/>
</Grid.Background>
<!-- Add controls as needed -->
</Grid>
<!-- Use whatever layout you need -->
<ContentControl x:Name="MainContent" />
</Grid>
<Canvas Panel.ZIndex="1" HorizontalAlignment="Left" VerticalAlignment="Top" Width="570">
<!-- YOUR XAML CODE -->
</Canvas>
नियंत्रण आप अपने XAML कोड के अंत में सामने लाने के लिए रखें। अर्थात।
<Grid>
<TabControl ...>
</TabControl>
<Button Content="ALways on top of TabControl Button"/>
</Grid>
- 1. अन्य सभी नियंत्रणों के शीर्ष में div को कैसे बनाना है
- 2. सी # नियंत्रणों की एक सरणी बनाएं
- 3. ओवरले दो नियंत्रण
- 4. जावा में ओवरले विंडो कैसे बनाएं?
- 5. सीएसएस - किसी अन्य छवि के ऊपर एक छवि को ओवरले करना
- 6. टाइमलाइन नियंत्रण कैसे बनाएं?
- 7. बूटस्ट्रैप थंबनेल पर ओवरले कैसे बनाएं?
- 8. सभी नियंत्रणों के लिए वर्टिकल एलाइनमेंट प्रॉपर्टी सेट करना
- 9. एक्सप्लोरर-जैसे फ़ोल्डर ब्राउज़र नियंत्रण कैसे बनाएं?
- 10. सभी बाल नियंत्रणों को ढूंढना WPF
- 11. उपयोगकर्ता नियंत्रण कैसे बनाएं जिससे आप इसमें अन्य नियंत्रण छोड़ सकें?
- 12. क्या डब्ल्यूपीएफ के पास सभी विनफॉर्म नियंत्रणों के बराबर नियंत्रण है?
- 13. एंड्रॉइड में अन्य दृश्यों पर ओवरले दृश्य कैसे जोड़ें?
- 14. मैं उपयोगकर्ता नियंत्रण में सभी नियंत्रणों को गतिशील रूप से कैसे साफ़ कर सकता हूं?
- 15. एंड्रॉइड फ्लोटिंग व्यू (अन्य विचारों के ऊपर)
- 16. सीएसएस पोजिशनिंग सभी तत्वों के ऊपर
- 17. जावाएफएक्स 2 वेबव्यू के शीर्ष पर ओवरले कैसे बनाएं?
- 18. आईफोन/आईपैड पर वीडियो के लिए नियंत्रण ओवरले
- 19. रनटाइम पर नियंत्रण कैसे बनाएं?
- 20. लाटेक्स में किसी अन्य के ऊपर एक प्रतीक कैसे डालें?
- 21. अन्य दृश्यों के ऊपर uiview को कैसे रखा जाए
- 22. पृष्ठ पर सभी उपयोगकर्ता नियंत्रणों के माध्यम से लूप
- 23. डब्ल्यूपीएफ: ट्रिगर संपत्ति संपत्ति के भीतर अन्य नियंत्रणों का संदर्भ कैसे लें?
- 24. मैं ASP.NET पृष्ठ में सभी नियंत्रणों को कैसे अक्षम करूं?
- 25. मैं खिड़की पर नियंत्रण कैसे ओवरले कर सकता हूं?
- 26. NSWindow वास्तव में उच्चतम स्तर (माउस के ऊपर, मिशन नियंत्रण/खुलासा से ऊपर)
- 27. ड्रॉपडाउनलिस्ट नियंत्रण कैसे बनाएं बोल्ड एएसपी.नेट
- 28. फॉर्म पर सभी नियंत्रणों के लिए एक ईवेंट हैंडलर
- 29. एक फॉर्म में सभी नियंत्रणों के माध्यम से लूप कैसे करें, जिसमें सबफ़ॉर्म में नियंत्रण शामिल हैं - एक्सेस 2007
- 30. एंड्रॉइड: बिटमैप गतिशील या ओवरले बटन पर बटन कैसे बनाएं?
काम करता है! लेकिन मैं स्थिति को सही करने के लिए ओवरले ग्रिड कैसे ले जा सकता हूं? –
यह ओवरले पूरी विंडो को कवर करेगा, केवल एक विशिष्ट क्षेत्र नहीं। –
अब तक का सबसे अच्छा समाधान! धन्यवाद! –