2010-10-26 8 views
5

मैं एक WPF विंडो का उपयोग कर एक कस्टम संदेश बॉक्स बनाने की कोशिश कर रहा हूं जिसे ShowDialog() कहा जाता है।सी #/डब्ल्यूपीएफ, खिड़की बनाने के लिए कैसे (खिड़की के साथ बनाया गया .ShowDialog()) शीर्षक पट्टी झपकी जब उसकी मूल विंडो (जैसे संदेशबॉक्स करता है) पर क्लिक करें?

अब तक, मैंने एक चीज़ को छोड़कर सबकुछ लागू करने में कामयाब रहा है।

जैसा कि आप जानते हैं, जब आप MessageBox.Show("text"); का उपयोग करते हैं तो आप फोकस सेट नहीं कर सकते हैं या पैरेंट विंडो पर क्लिक नहीं कर सकते (जिसे MessageBox कहा जाता है)। यदि आप पैरेंट विंडो पर क्लिक करने का प्रयास करते हैं, तो MessageBox आपको सतर्क करने के लिए संक्षेप में झपकी देगा कि आपको पहले बंद करना होगा।

विंडोज Window.ShowDialog(); के साथ बनाया गया, हालांकि, उस व्यवहार को न दिखाएं। वास्तव में, जब आप पैरेंट विंडो पर फ़ोकस सेट नहीं कर सकते हैं, तो बच्चा (ShowDialog() के साथ बुलाया जाता है) कभी भी संक्षिप्त रूप से झपकी नहीं देगा।

मेरा सवाल है, क्या WPF में इसे लागू करने का कोई तरीका है? मैं एक उत्तर खोज रहा हूं लेकिन मुझे स्वीकार करना होगा, मैं फंस गया हूं।

सभी को धन्यवाद!

उत्तर

11

आपको मोडल विंडो के Owner को सही ढंग से सेट करने की आवश्यकता है, उदा। मालिक विंडो में से निम्नलिखित कोड का उपयोग कर:

Window win = new SomeModalWindow(); 
win.Owner = this; 
win.ShowDialog(); 
+1

इतना आसान ... अच्छा, अब मुझे बेवकूफ लगता है! आपका बहुत बहुत धन्यवाद! –

3

आप के लिए होता है माता पिता के लिए बच्चे WindowWindow की Owner गुण सेट करने के लिए। एमएसडीएन दस्तावेज़ीकरण here देखें।