2009-01-25 7 views
5

मेरे पास उस पर नियंत्रण किए गए उपयोगकर्ता नियंत्रण के साथ एक कैनवास है। जब कोई टूलटिप उपयोगकर्ता नियंत्रण या उसके बच्चों में से एक को असाइन किया जाता है, तो टूलटिप प्रदर्शित नहीं होता है (खुली घटना को या तो निकाल दिया नहीं जाता है)। मैं उनमें से किसी को स्पष्ट रूप से अक्षम नहीं करता हूं।wpf टूलटिप उपयोगकर्ता नियंत्रण या उसके बच्चों पर नहीं दिखाया गया है

मैं आवेदन में कहीं और टूलटिप्स के बहुत रखा है और वे सभी शो, usercontrol बनाने पर लोगों को छोड़कर।

कोई भी विचार?

पदानुक्रम पालन मोटे तौर पर है:

<Grid> 
<Canvas> 
    <UserControl> 
    <Canvas> 
    <Line/> 
    <Rectangle/> 
    </Canvas> 
    </UserControl> 
</Canvas 
</Grid> 

उत्तर

2

मैंने अंततः इसे समझ लिया। मेरे कैनवास पर, मैं पॉइंटर लाइनों को खींच रहा था (ग्रिड पर दिखाने के लिए क्षैतिज और ऊर्ध्वाधर जहां मैं हूं और बाएं/नीचे के मान), यह पता चला है कि जब हिट टेस्ट किया जा रहा था, तो यह उन पंक्तियों को मार रहा था और रोक। सभी अप्रासंगिक ज्यामिति पर IsHitTestVisible को गलत पर सेट करके, मेरी टूलटिप अब ठीक से दिखाती है।

कारण मैं देख रहा था माउस दर्ज/छोड़ घटना थी क्योंकि जब कर्सर ले जाकर, लाइनों के पीछे 1 फ्रेम खींचें और इस प्रकार माउस में प्रवेश/छोड़ लेकिन कदम नहीं करने की अनुमति होगी।

यह मेरी समस्या का समाधान करता है।

4

तो UserControl की पृष्ठभूमि एक्स है: अशक्त, तो माउस की घटनाओं अंतर्निहित सामग्री के माध्यम से गिर जाएगी। माउस घटनाओं को उपयोगकर्ता नियंत्रण में सुनिश्चित करने के लिए आप "पारदर्शी" का उपयोग कर सकते हैं।

यह व्यवहार उपयोगकर्ता नियंत्रण के लिए अद्वितीय नहीं है; यह सभी WPF के लिए सामान्य व्यवहार है। आपके उदाहरण में, मान लें कि आपके पास बाल तत्वों को भरना है, आप उन पर होवर करने में सक्षम होना चाहिए, और आपके द्वारा सेट किए गए टूलटिप्स देखें।

0

मैं मूल रूप से इस समस्या थी जब मैं अपनी जड़ कैनवास में परीक्षण किया गया है, मेरे आयत एक टूलटिप नहीं दिख रहा था जब पृष्ठभूमि अशक्त था। हालांकि, यह उपयोगकर्ता नियंत्रण के लिए इस मुद्दे को हल नहीं कर रहा है। मैंने उपयोगकर्ता नियंत्रण और इसके अंदर कैनवास दोनों के लिए एक पारदर्शी पृष्ठभूमि की कोशिश की, उस आंतरिक कैनवास के आयत में एक काला पृष्ठभूमि है और फिर भी, कोई भाग्य नहीं: टूलटिप बस नहीं खुल जाएगा।

मैंने अपने रूट कैनवास पर एक टूलटिप लगाने की कोशिश की और यह वास्तव में दिखाता है लेकिन मेरे व्यक्तिगत बाल उपयोगकर्ता नियंत्रण और न ही उनके आंतरिक कैनवास/बच्चों पर, भले ही उनके पास पृष्ठभूमि/भरने का सेट हो।

इसके अलावा, एक mouseenter घटना रखने से पता चलता है कि यह वास्तव में आग जब माउस भीतरी कैनवास में प्रवेश करती है, फिर भी, टूलटिप पॉप नहीं होंगे।

संबंधित मुद्दे