मैं कुछ XAML मार्कअप है कि इस तरह अनिवार्य रूप से दिखता है से अधिक है:WPF - निर्धारण करता है, तो माउस एक UIElement
<Canvas x:Name="A">
<Canvas x:Name="B"/>
</Canvas>
मैं अगर माउस बी
जब मैं थोड़ी देर के लिए क्लिक करें Canvas
खत्म हो गया है निर्धारित करने के लिए चाहते हैं मेरा माउस कैनवास बी, माउस पर है। प्रत्यक्ष रूप से कैनवास ए लौटाता है (जैसा कि मुझे उम्मीद है)। इसके बाद मैं कैनवास ए से कैनवास बी का संदर्भ प्राप्त करता हूं लेकिन जब मैं कैनवास बी की IsMouseOver संपत्ति की जांच करता हूं तो यह झूठा होता है।
यह निर्धारित करने का सबसे अच्छा तरीका क्या है कि माउस कैनवास बी से ऊपर है xaml ऊपर दिया गया है?
आपकी जांच करने के लिए आप किस ईवेंट हैंडलिंग का उपयोग कर रहे हैं? यदि मैं कैनवास बी में माउसअप ईवेंट जोड़ता हूं तो माउस। डायरेक्टली ओवर कैनवास बी वापस कर रहा है। शायद थोड़ी अधिक जानकारी आपकी समस्या को ट्रैक करने में मदद करेगी। – Liz
निश्चित रूप से। कैनवास वास्तव में ListBoxItem के लिए ControlTemplate में है। मैं सूची बॉक्स के चयन को बदल रहा हूं, और पॉप-अप दिखाने के लिए एक रूटेड ईवेंट निष्पादित कर रहा हूं, जो क्लिक किए गए आइटम के बारे में जानकारी देता है। कोड जहां मैं जांचता हूं कि माउस कहां खत्म हो गया है, रूटेड इवेंट हैंडलर में है। इन सब का लक्ष्य पॉप-अप नहीं दिखाना है जब सूची आइटम के दाईं ओर भाग क्लिक किया जाता है। इसलिए मैं सूची आइटम के उस भाग को कैनवास के साथ परिभाषित करने का प्रयास कर रहा हूं, फिर यह देखने के लिए जांच कर रहा हूं कि पॉपअप दिखाने से पहले आइटम के उस भाग पर माउस है या नहीं। –
मुझे पता है कि ऐसा करने के अन्य तरीके हैं, लेकिन मैं चयन में बदलाव के अलावा कुछ और उपयोग करने से बचने की कोशिश कर रहा हूं। –