ठीक है, तो मेरा previous question कोई उपयोगी उत्तर नहीं मिला, इसलिए मैं एक अलग दिशा से आने की कोशिश करूंगा।विंडोज़ में हिटटेस्ट?
मेरे आवेदन में, संभावित रूप से, कई खिड़कियां हैं। स्क्रीन निर्देशांक में एक बिंदु को देखते हुए, मुझे यह पता लगाने की ज़रूरत है कि यह कौन सी खिड़की "गिरती है" - यानी खिड़की को ढूंढें जो कि सभी बिंदुओं में सबसे महत्वपूर्ण विंडो है।
यदि वे एक खिड़की के अंदर Visual
एस थे, तो मैं VisualTreeHelper.HitTest
का उपयोग करूंगा। लेकिन चूंकि वे अलग-अलग खिड़कियां हैं, इसलिए यह स्पष्ट नहीं है कि उस विधि के पहले तर्क के रूप में क्या देना है।
आपके उत्तर के लिए बहुत बहुत धन्यवाद। मैं इसे स्वीकार करूंगा, क्योंकि यह अब तक का एकमात्र उत्तर है, और यह निश्चित रूप से काम करता है, अगर केवल पूर्ण ट्रस्ट की आवश्यकता के खर्च पर :-(एक सवाल बनी हुई है, हालांकि: आप वास्तव में क्यों सुनिश्चित हैं कि डब्ल्यूपीएफ इस अनुमति की अनुमति नहीं देता है? –
कोई भी Win32 एप्लिकेशन SetWindowPos का उपयोग कर जेड ऑर्डर बदल सकता है। WPF से यह Z ऑर्डर जानकारी प्राप्त करने के दो तरीके हैं: GetTopWindow/GetNextWindow जैसा ऊपर दिखाया गया है, या WM_WINDOWPOSCHANGED और भंडारण स्थिति को संभालने के द्वारा। WPF असेंबली में GetTopWindow के कोई संदर्भ नहीं हैं। डीबगर में ऑब्जेक्ट्स का निरीक्षण करने से पता चलता है कि डब्ल्यूपीएफ जेड ऑर्डर की जानकारी को स्टोर नहीं करता है। डब्ल्यूपीएफ आपको यह नहीं बता सकता कि वह खुद को क्या नहीं जानता है। –