क्या मैं वास्तव में चाहते हैं कि माउस क्लिक घटनाओं पर ध्यान नहीं देता, लेकिन अभी भी माउस दर्ज करें और घटनाओं छोड़ फंसा लेती है IsHitTestVisible का एक संस्करण है।WPF: ओवरले/adorner पर माउस क्लिक पर ध्यान न दें, लेकिन mouseenter घटना
पृष्ठभूमि: एक सूचनात्मक ओवरले नियंत्रण के दौरान नियंत्रण के दौरान पॉप अप करता है। यह एक आवश्यकता है, इसलिए मुझे इस व्यवहार को हटाने की स्वतंत्रता नहीं है। यह एक छवि ब्रश से भरा आयत युक्त आयतकार का उपयोग करके कार्यान्वित किया जाता है। सभी नियंत्रण प्रोग्रामेटिक रूप से बनाए जाते हैं, कोई एक्सएएमएल शामिल नहीं है।
वांछित व्यवहार: जब आयताकार पर उपयोगकर्ता मकान, आंशिक रूप से पारदर्शी होना चाहिए। ऐसा इसलिए है कि वे ओवरले के नीचे अन्य नियंत्रण देख सकते हैं और उन्हें क्लिक कर सकते हैं। जब उपयोगकर्ता ओवरले पर क्लिक करता है, तो क्लिक ओवरले के तहत जो भी नियंत्रण होता है, उस पर क्लिक किया जाना चाहिए, जहां उपयोगकर्ता ने क्लिक किया था।
समस्या: अगर मैं सही पर IsHitTestVisible सेट माउस के माध्यम से पारित करने के लिए क्लिक करता है अनुमति देने के लिए, मैं mouseenter घटनाओं नहीं मिलता है।
क्या IsHitTestVisible True को छोड़ने का कोई आसान तरीका है, और उसके बाद 2-3 घटनाओं को सजाने के नीचे सही नियंत्रण में पास करें? मैं ऐसे समाधान की तलाश में हूं जिसमें कर्सर के नीचे नियंत्रण क्या है, इसकी गणना शामिल नहीं है, क्योंकि डब्ल्यूपीएफ मेरे लिए यह करने में स्पष्ट रूप से सक्षम है।
वैकल्पिक रूप से, क्या मैं IsHitTestVisible को गलत पर सेट कर सकता हूं लेकिन फिर यह निर्धारित करने के लिए एक और सरल विधि का उपयोग करें कि माउस कब सजाए जाने पर है?
अद्यतन: मैं अभी भी एक जवाब के लिए उम्मीद कर रहा हूँ, लेकिन अब के रूप में सबसे होनहार समाधान IsHitTestVisible सच छोड़ने जा रहा है, और WPF का उपयोग कर एपीआई परीक्षण हिट यह पता लगाने की नियंत्रण किस प्रकार माउस के नीचे था कर्सर; अगर यह एक था, तो मुझे पता था, मैं इसे एक क्लिक कमांड भेजूंगा। सुनिश्चित नहीं है कि यह करने योग्य है, हालांकि; अब के रूप में मेरे ओवरले को खारिज कर दिया गया है ताकि उपयोगकर्ता को दो बार क्लिक करना होगा।
धन्यवाद!
क्या आपने कभी इसे हल किया है? मेरे पास बिल्कुल वही आवश्यकता है। – Grokys