से आच्छादन नियंत्रण बनाने के लिए मैं जो ओवरले के रूप में उपयोग किया जाएगा एक कस्टम नियंत्रण बनाना चाहते हैं। नियंत्रण में कुछ बाल नियंत्रण होना चाहिए जिन्हें खींचा जाना चाहिए और सामान्य रूप से क्लिक करने योग्य होना चाहिए। लेकिन नियंत्रण में बाकी सब कुछ पारदर्शी और "क्लिक करने योग्य-माध्यम" होना चाहिए।WPF: पारदर्शी कैनवास और क्लिक करने योग्य बच्चे
यहां यह है कि मैं इसे कैसे प्राप्त करने का प्रयास करता हूं ... सबसे पहले, मैं विंडो में पूर्वावलोकनमाउसडाउन \ अप \ मूव ईवेंट का उपयोग कर रहा हूं जहां ओवरले रखा जा रहा है। मैं इन घटनाओं को अपने कस्टम नियंत्रण के पारदर्शी हिस्से से "जाने" चाहता हूं, लेकिन पारदर्शी (उदाहरण के लिए मेरे बटन पर) पर रोकें।
<Canvas Background="transparent" IsHitTestVisible="true">
<Button Canvas.Left="384" Canvas.Top="34" Content="Button" Height="23" Name="button1" Width="75" Click="button1_Click" IsHitTestVisible="True" />
<TextBlock Canvas.Left="27" Canvas.Top="105" Height="36" Name="textBlock1" Text="TextBlock" Width="432" FontSize="24" IsHitTestVisible="False" Foreground="Red" FontWeight="Bold" />
</Canvas>
लेकिन अगर मैं सेट कैनवास 'गलत पर IsHitTestVisible, बटन सहित पूरे नियंत्रण "unhittable" हो जाता है: दूसरा, यहाँ मेरे नियंत्रण (रूट UserControl नोड अछूता छोड़ दिया गया था) के लिए XAML है। यदि इसे सत्य पर सेट किया गया है तो मेरी सभी सुरंग घटनाएं कस्टम नियंत्रण पर रुकती हैं और बटन अनजान हो जाता है।
सही तरीके से इस तरह का व्यवहार प्राप्त करने के लिए क्या है? कैनवास (या कोई अन्य पैनल) उपखंड के बिना ऐसा करना संभव है?
वाह! यह इतना आसान था! धन्यवाद :) –
@Pavel: आप का स्वागत करते हैं :) – Vlad
@Vlad, हाय, अच्छा तुम्हें फिर से देख रहे हैं! क्या यह काम करता है ताकि जब पृष्ठभूमि शून्य हो, तो बटन के अंदर बटन क्लिक नहीं किया जा सकता है, हालांकि, जब पृष्ठभूमि पारदर्शी है तो बटन क्लिक किया जा सकता है? /// वैसे, आपकी पिछली मदद के लिए बहुत बहुत धन्यवाद। मेरा मतलब है टेक्स्ट हाइलाइटब्लॉक नियंत्रण (पीला/नारंगी हाइलाइट रंग)। आपने मुझे इसे तेजी से बनाने में मदद की। मेरी कंपनी के कई लोगों ने मुझे बताया कि काम अच्छी तरह से किया गया है, और यह conltrol इसका एक महत्वपूर्ण हिस्सा था। –