2008-12-13 12 views
10

मैंने एक उपयोगकर्ता नियंत्रण बनाया जिसमें दो इलिप्स और लेबल शामिल हैं। मैंने इसे एक और रूप में ठीक किया और चीजें बहुत अस्पष्ट दिख रही थीं।डब्ल्यूपीएफ एक बटन प्राप्त करने के लिए UserControl कैसे प्राप्त करें?

फिर मैं कुछ ईवेंट हैंडलर जोड़ने शुरू करने गया और पाया कि मैंने जो नियंत्रण बनाया है, वह एक क्लिक ईवेंट का पर्दाफाश नहीं करता है। उफ़। ठीक करने के लिए आसान है, है ना? बस UserControl I पर कोड-बैक पर वापस जाएं और इसे बटन का वारिस दें।

दुर्भाग्यवश, ऐसा करने से "MyControl की आंशिक घोषणाओं को विभिन्न आधार वर्ग निर्दिष्ट नहीं करना चाहिए" संदेश। यह आश्चर्यचकित हुआ क्योंकि मैंने कोई अन्य आधार वर्ग घोषित नहीं किया है। प्रश्न में आंशिक खोज के लिए कोई परिणाम नहीं लौटा।

क्या इस मुद्दे को हराने का कोई तरीका है? यदि नहीं, तो यहां सबसे आसान कामकाज क्या होगा? मेरा लक्ष्य बस UserControl पर एक क्लिक ईवेंट प्राप्त करने के लिए है।

उत्तर

11

हाँ, आप घोषित किया है अन्य आधार वर्ग :) बस विश्वास संकलक :)

जब आप XAML में <UserControl ...></UserControl> लेखन, आप उपवर्गीकरण रहे UserControl। यदि आप किसी बटन को उप-वर्ग करना चाहते हैं, तो कोड-पीछे फ़ाइल में <Button ...></Button> और ": बटन" का उपयोग करें।

लेकिन मैं दृढ़ता से आपको बटन को उप-वर्ग नहीं करने के लिए प्रोत्साहित करता हूं, यह आपके लिए काम के लिए एक ओवरकिल है। आप क्लिक ईवेंट की बजाय MouseLeftButtonUp ईवेंट का उपयोग कर सकते हैं।

+2

MouseLeftButtonUp घटना हमेशा माउस द्वारा क्लिक किए जाने वाले बटन पर निर्भर करती है। जब कोई उपयोगकर्ता स्पेसबार कुंजी दबाता है, तो क्लिक ईवेंट निकाल दिया जाता है लेकिन MouseLeftButtonUp नहीं है (स्पेसबार बाएं माउस बटन नहीं है)। –