मेरे पास एक WPF Popup
नियंत्रण है जिसमें कुछ संपादन नियंत्रण (सूची बॉक्स, टेक्स्ट बॉक्स, चेक बॉक्स) शामिल हैं जो बहुत सारे व्हाइटस्पेस के साथ रखे गए हैं।जब कोई पृष्ठभूमि क्षेत्र क्लिक किया जाता है तो एक WPF पॉपअप बंद क्यों होता है?
Popup.StaysOpen
False
पर सेट है, जो आवश्यक है। यदि उपयोगकर्ता एप्लिकेशन में कहीं और क्लिक करता है, तो संपादन ऑपरेशन को निरस्त माना जाना चाहिए और पॉपअप बंद होना चाहिए।
दुर्भाग्यवश पॉपअप भी पॉपअप के पृष्ठभूमि क्षेत्र (संपादन नियंत्रण के बीच की जगह) के भीतर क्लिक करता है जब भी पॉपअप बंद हो जाता है।
मैंने पॉपअप को Focusable
पर सेट करने का प्रयास किया है। मैंने पॉपअप के बच्चे() को ध्यान देने योग्य बनाने की भी कोशिश की है। किसी भी मोर्चे पर कोई भाग्य नहीं।
इसके अलावा, माउस ईवेंट पॉपअप के माध्यम से सुरंग प्रतीत होता है। जब भी मैं क्लिक करता हूं तो पॉपअप के नीचे जो भी तत्व है, वह केंद्रित हो जाता है। यह Popup
और Border
(जिसमें मैं क्लिक कर रहा हूं) दोनों के बावजूद IsHitTestVisible
और Focusable
दोनों true
पर सेट किए गए हैं।
+1 बहुत अच्छा और सुरुचिपूर्ण है! –
ग्रेट सॉल्यूशन! मैं EventCoCommand का उपयोग कर, जेनरिक.एक्सएएमएल पर परिभाषित नियंत्रण के साथ ऐसा करने में भी सक्षम था, आदेश में EventArgs को पास कर रहा था, और उसके बाद हैंडल = ट्रू सेट कर रहा था। धन्यवाद! – Dror
यहां तक कि हैंडलर को एक मुश्किल स्थान पर छेड़छाड़ करने का एक और तरीका 'पॉपअप' से प्राप्त 'आर्मर्डपॉप' वर्ग प्राप्त करना है। यह 'OnMouseDown' को ओवरराइड कर सकता है। मैं इसे डिफ़ॉल्ट पॉपअप क्लास में एक बग मानता हूं। –