मेरे पास एक WPF विंडो है जिसमें अन्य नियंत्रणों में से एक फ्रेम फ़्रेम होस्ट करता है। उस फ्रेम में मैं अलग-अलग पेज प्रदर्शित करता हूं। क्या केवल एक पृष्ठ में एक संवाद मोडल बनाने का कोई तरीका है? जब मैं संवाद दिखा रहा हूं तो पृष्ठ पर किसी भी नियंत्रण पर क्लिक करना संभव नहीं होना चाहिए, लेकिन पृष्ठ पर नहीं होने वाली उसी विंडो पर नियंत्रण पर क्लिक करना संभव होना चाहिए।मैं अपने डब्ल्यूपीएफ-एप्लिकेशन में किसी पेज के लिए मोडल डायलॉग कैसे करूं?
उत्तर
यदि मैं आपका संदेश व्याख्या करने में सही हूं, तो आप Billy Hollis demonstrates in his StaffLynx application के समान काम करते हैं।
मैंने हाल ही में एक समान नियंत्रण बनाया है और यह पता चला है कि इस प्रकार का विचार WPF में लागू करने के लिए अपेक्षाकृत सरल है। मैंने संवाददाता नामक एक कस्टम नियंत्रण बनाया। कस्टम नियंत्रण के लिए नियंत्रण टेम्पलेट में, मैं निम्न के समान मार्कअप कहा:
<ControlTemplate TargetType="{x:Type local=DialogPresenter}">
<Grid>
<ContentControl>
<ContentPresenter />
</ContentControl>
<!-- The Rectangle is what simulates the modality -->
<Rectangle x:Name="Overlay" Visibility="Collapsed" Opacity="0.4" Fill="LightGrey" />
<Grid x:Name="Dialog" Visibility="Collapsed">
<!-- The template for the dialog goes here (borders and such...) -->
<ContentPresenter x:Name="PART_DialogView" />
</Grid>
</Grid>
<ControlTemplate.Triggers>
<!-- Triggers to change the visibility of the PART_DialogView and Overlay -->
</ControlTemplate.Triggers>
</ControlTemplate>
मैं यह भी कहा जो 'PART_DialogView' पाता है, और Content
संपत्ति को ध्यान में रखते हुए पारित कर दिया कहते हैं एक Show(Control view)
विधि,।
<controls:DialogPresenter x:Name="DialogPresenter">
<!-- Normal parent view content here -->
<TextBlock>Hello World</TextBlock>
<Button>Click Me!</Button>
</controls:DialogPresenter>
बटन ईवेंट हैंडलर (या बाध्य आदेश) के लिए
, मैं बस DialogPresenter
की विधि शो() कहते हैं:
यह तो इस प्रकार मुझे DialogPresenter
उपयोग करने के लिए अनुमति देता है।
आप वीडियो में दिखाए गए स्केलिंग प्रभाव प्राप्त करने के लिए संवाददाता टेम्पलेट में स्केलट्रांसफॉर्म मार्कअप को आसानी से जोड़ सकते हैं। इस समाधान में साफ और साफ कस्टम नियंत्रण कोड है, और आपके यूआई प्रोग्रामिंग टीम के लिए एक बहुत ही सरल इंटरफ़ेस है।
आशा है कि इससे मदद मिलती है!
आप यहां एक मॉडल संवाद की तलाश नहीं कर रहे हैं। आपको एक ऐसे फ़ंक्शन की आवश्यकता है जो "पृष्ठ" नियंत्रण अक्षम करे, एक संवाद दिखाए, और संवाद बंद होने पर इसे फिर से सक्षम करें।
मुझे यकीन नहीं है कि क्या आप समझते हैं कि क्या एक मोडल संवाद करने के लिए क्या करना है?
डाउनवोट क्यों? एक मॉडल विंडो एक खिड़की है जो एकमात्र खिड़की है जो उस समय इनपुट के लिए इनपुट स्वीकार कर सकती है। – Mez
मैं github पर एक परियोजना है जो एक कस्टम FrameworkElement
कि आप प्राथमिक सामग्री पर मोडल सामग्री प्रदर्शित करने के लिए अनुमति देता है है बनाने के लिए क्यों बस नेस्टेड संदेश का उपयोग नहीं पंप करता है।
नियंत्रण इस तरह इस्तेमाल किया जा सकता:
<c:ModalContentPresenter IsModal="{Binding DialogIsVisible}">
<TabControl Margin="5">
<Button Margin="55"
Padding="10"
Command="{Binding ShowModalContentCommand}">
This is the primary Content
</Button>
</TabItem>
</TabControl>
<c:ModalContentPresenter.ModalContent>
<Button Margin="75"
Padding="50"
Command="{Binding HideModalContentCommand}">
This is the modal content
</Button>
</c:ModalContentPresenter.ModalContent>
</c:ModalContentPresenter>
विशेषताएं:
- प्रदर्शित करता है मनमाने ढंग से सामग्री।
- मॉडल सामग्री प्रदर्शित होने पर प्राथमिक सामग्री को अक्षम नहीं करता है।
- मोडल सामग्री प्रदर्शित होने पर प्राथमिक सामग्री के लिए माउस और कीबोर्ड पहुंच को अक्षम करता है।
- केवल उस सामग्री के लिए मोडल है जो इसे कवर कर रहा है, पूरे एप्लिकेशन में नहीं।
IsModal
संपत्ति पर बाध्यकारी करके एमवीवीएम दोस्ताना तरीके से उपयोग किया जा सकता है।
- 1. एमएफसी - मोडल डायलॉग
- 2. डब्ल्यूपीएफ में मोडल डायलॉग कैसे करें?
- 3. jQuery मोडल डायलॉग बटन टेक्स्ट
- 4. मैं अपने कोल्डफ्यूजन पेज में जावास्क्रिप्ट का उपयोग कैसे करूं?
- 5. jQuery यूआई मोडल डायलॉग स्ट्रिप इश्यू
- 6. क्या मोडल डायलॉग वेब के लिए एक अच्छा अभ्यास है?
- 7. मोडल कॉन्फर्मडियलॉग मोडल डायलॉग पर -> सब कुछ अवरुद्ध है
- 8. मैं अपने जीथ्यूब पेज
- 9. फ्रेमसेट पर मोडल-डायलॉग या div ओवरले?
- 10. क्या आप एक jquery मोडल डायलॉग
- 11. jQuery: मोडल डायलॉग ओवरले रंग सेट करें
- 12. मैं "माइ कंप्यूटर" डायलॉग
- 13. विनफॉर्म एप्लिकेशन में अपवाद हैंडलिंग व्यवहार, जो मोडल डायलॉग
- 14. बूटस्ट्रैप सीएसएस - पृष्ठभूमि को प्रभावित किए बिना एक मोडल डायलॉग मोडल कैसे करें
- 15. ट्विटर बूटस्ट्रैप मोडल वास्तव में मोडल
- 16. मैं अपने डी 3 मानचित्र को किसी स्थान पर ज़ूम करने के लिए कैसे प्राप्त करूं?
- 17. मैं अपने विषय प्रीप्रोसेस फ़ंक्शन को किसी विशिष्ट फ़ील्ड के लिए कैसे कॉल करूं?
- 18. सी # में मैं अपने स्वयं के अपवाद कैसे परिभाषित करूं?
- 19. मैं अपने आईफोन एक्सकोड प्रोजेक्ट में एचटीएमएल पेज कैसे जोड़ूं?
- 20. मैं अपने एचटीएमएल पेज में एकाधिक आईफ्रेम का उपयोग कैसे करूं?
- 21. मैं अपने ड्रूपल थीम को फ्रंट पेज
- 22. मैं अपने सी ++ प्रोजेक्ट में SQLite DLL कैसे शामिल करूं?
- 23. मैं लेटेक्स में कस्टम पेज नंबरिंग कैसे करूं?
- 24. मैं PHP में एक वेब पेज कैश कैसे करूं?
- 25. डायलॉग फ्रैगमेंट डायलॉग
- 26. मैं अपने डेटाबेस में अंतिम सम्मिलित मान कैसे प्राप्त करूं?
- 27. मैं PHP में किसी वेब पेज का HTML कोड कैसे प्राप्त करूं?
- 28. क्या कोई मुझे एक jQuery मोडल डायलॉग बॉक्स लाइब्रेरी के बारे में बता सकता है जो
- 29. मैं अपने वेब एप्लिकेशन में ओपनआईडी कैसे कार्यान्वित करूं?
- 30. मैं अपने कॉलम को हमेशा पृष्ठ के नीचे तक फैलाने के लिए कैसे मजबूर करूं?
हां, मुझे स्टाफ लिंक्स एप्लिकेशन से विचार मिला। मुझे यह डब्ल्यूपीएफ सामान ग्रोक करना वाकई मुश्किल लगता है लेकिन मुझे लगता है कि यह आसान हो जाएगा। संवाद को स्थानांतरित करने के लिए मुझे लगता है कि कुछ और चीजें हैं जिन्हें किया जाना चाहिए। –
निश्चित रूप से - चलने योग्य दृश्य करने के लिए, आप एक कैनवास को प्रतिस्थापित करेंगे जहां हमारे पास "संवाद" नामक ग्रिड है। आपको सभी ड्रैग/ड्रॉप सामान भी करना होगा। इस अवधारणा का एक अच्छा अवलोकन यहां है: http://www.codeproject.com/KB/WPF/DraggingElementsInCanvas.aspx –
हाय ब्रैड, महान उत्तर! क्या आप संवाददाता का पूरा स्रोत कोड साझा करेंगे? मैं इसे अपनी परियोजनाओं में से एक में उपयोग करना पसंद करूंगा। धन्यवाद, जेन्स। – FantaMango77