बबलिंग घटनाओं और टनलिंग घटनाओं के बीच सटीक अंतर क्या है? मुझे बबलिंग घटनाओं का उपयोग कहां करना चाहिए और मुझे टनलिंग कार्यक्रमों का उपयोग कहां करना चाहिए? अग्रिम में धन्यवाद!बबलिंग और टनलिंग घटनाओं के बीच अंतर
उत्तर
डब्ल्यूपीएफ हमें घटनाओं को संभालने के लिए कई अलग-अलग तंत्र प्रदान करता है - वे बुलबुले, सुरंग और प्रत्यक्ष हैं। ये सभी रूटेड घटनाओं के रूप में जाने जाते हैं।
प्रत्यक्ष घटना
आप शायद पहले से ही प्रत्यक्ष कराई घटना के लिए उपयोग किया जाता है। यह है जहां आइटम स्वयं ही होने वाली घटना को संभालता है। एक अच्छा उदाहरण मानक WinForms में माउस बटन के बाईं ओर
onClick
को संभालने वाला होगा। यह वह जगह है जहां घटना जीयूआई आइटम में उठाई जाती है और को जीयूआई तत्व द्वारा संभाला जाता है।bubbling घटना
अब हम सभी किसी न किसी रूप में कुछ बुलबुले की तरह। बबलिंग होती है जब ईवेंट तत्व द्वारा नियंत्रित नहीं किया जाता है (
textbox
कहें) और ईवेंट "बुलबुले" यूआई कंटेनर को अपना रास्ता बनाते हैं। उदाहरण के लिए, मान लें कि आपके पास एक विंडो है जिसमें एक पैनल है और के अंदर पैनल है जिसमें आपके पास ग्रिड है और ग्रिड के अंदर आपके पास टेक्स्टबॉक्स है। यदि ईवेंट को टेक्स्टबॉक्स द्वारा नियंत्रित नहीं किया जाता है, तो यह आगे बढ़ता है, गुजरता है या ग्रिड स्तर तक "बुलबुले" (जैसे ग्रिड में टेक्स्टबॉक्स होता है), यह उस स्तर पर संभाला नहीं जाता है तो ईवेंट बुलबुले आगे पैनल में "पेड़" (दृश्य वृक्ष के रूप में जाना जाता है) को प्रबंधित किया जा सकता है या नहीं। यह प्रक्रिया तब तक जारी रहती है जब तक इसे संभाला नहीं जाता है या घटना शीर्ष तत्व से "बच निकलती है"।एक बबलिंग घटना के उदाहरण
MouseButtonDown
ईवेंट की तरह कुछ होंगे। याKeydown
घटना।टनेलिंग
टनेलिंग बुदबुदाती के विपरीत है। तो विज़ुअल ट्री "अप" पर जाने वाली घटना के बजाय, ईवेंट की ओर दृश्य पेड़ को स्रोत मानता है। मानक डब्ल्यूपीएफ नामकरण एक सुरंग घटना की परिभाषा यह है कि वे सभी "पूर्वावलोकन" के साथ शुरू होते हैं उदाहरण के लिए
previewdownkey
औरpreviewmousebuttondown
। आप उन्हें "लक्ष्य" तत्व के रास्ते पर पकड़ सकते हैं और इसे संभाल सकते हैं। इसके लिए उदाहरण शायद आपके पास ग्रिड नियंत्रण के अंदर कुछ नियंत्रण हो सकते हैं और किसी कारण से आपने निर्णय लिया है कि के भीतर कोई नियंत्रण नहीं है कि ग्रिड को "टी" पहुंचने की अनुमति दी जाएगी।
लेखक जो मैं समर्थन नहीं करते और न ही से सहमत की राय के साथ Source।
And another StackOverflow question which is pretty much the same.
And last but not least some explanation and another tutorial.
एक शुरुआत के रूप में: कुछ डिफ़ॉल्ट की घटनाओं के लिए WPF में नामकरण परंपरा और सुरंग के लिए Preview<event>
उत्साह से भरा हुआ के लिए <event>
है। तो उदाहरण के लिए KeyDown के लिए हमारे पास PreviewKeyDown
और KeyDown
, क्रमशः सुरंग और बुलबुले होगा।
नामकरण सम्मेलन का अर्थ है, दोनों के बीच का अंतर यह है कि एक सुरंग घटना पेड़ (शायद खिड़की) में उच्चतम नोड पर शुरू होगी और सबसे कम बच्चे के पास जायेगी। एक बुलबुला घटना बच्चे से शुरू होगी और फिर ऊपर की तरफ जायेगी।
इस गाइड यह स्पष्ट रूप से व्याख्या करनी चाहिए: http://www.codeproject.com/Articles/464926/To-bubble-or-tunnel-basic-WPF-events
- 1. जेएस घटनाओं और डीओएम घटनाओं के बीच क्या अंतर है?
- 2. वीबी और सी # में घटनाओं के बीच क्या अंतर है?
- 3. कोणीय सबमिट और ngSubmit घटनाओं के बीच अंतर?
- 4. 'माउसअप' और 'क्लिक' घटनाओं के बीच क्या अंतर है?
- 5. जीडब्ल्यूटी में तार्किक घटनाओं और मूल घटनाओं के बीच क्या अंतर है?
- 6. "। +" और "। +?" के बीच अंतर
- 7. घटनाओं, श्रोताओं, नौकरियों, कतारों के बीच लार्वा अंतर
- 8. mousedown के बीच अंतर और jquery
- 9. बैकबोन 0.9.9: श्रोताओं के बीच अंतर और
- 10. AJAX के बीच अंतर और
- 11. "% ~ dp0" और "। \" के बीच अंतर?
- 12. CMake: $ {} और के बीच अंतर "$ {}"
- 13. ऑब्जेक्ट और * के बीच अंतर?
- 14. "या" और "||" के बीच अंतर
- 15. $ के बीच अंतर? और PowerShell
- 16. == और मामले के बीच अंतर?
- 17. वीबीए: और + के बीच अंतर
- 18. इवेंट कैप्चरिंग बनाम इवेंट बबलिंग
- 19. उपयोगकर्ता बातचीत द्वारा उठाए गए घटनाओं और अपने खुद के कोड के बीच अंतर करना
- 20. प्रतिनिधि हैंडलर और उन लोगों के साथ घटनाओं के बीच क्या अंतर है?
- 21. रीढ़ की हड्डी में ट्रिगर और घटनाओं के बीच क्या अंतर है?
- 22. DOMNodeInserted और DOMNodeInsertedIntoDocument के बीच क्या अंतर है?
- 23. पैरामीटर परिभाषाओं के बीच अंतर (प्रकार और नाम), और (प्रकार * नाम) के बीच अंतर क्या हैं?
- 24. संबंधों के बीच और कहां के बीच अंतर
- 25. विंडोज फोन आम - क्लिक और टैप के बीच अंतर
- 26. BufRead और BufEnter के बीच क्या अंतर है?
- 27. सी # डबलक्लिक घटना और माउसडब्लूक्लिक घटना के बीच विनफॉर्म अंतर
- 28. BOOST_CHECK_CLOSE और BOOST_CHECK_CLOSE_FRACTION के बीच अंतर?
- 29. शून्य के बीच अंतर? और खाली? योजना
- 30. मूल्य और वस्तु के बीच अंतर
सच अच्छा विवरण, धन्यवाद +1। बीटीडब्ल्यू, "एक अच्छा डेमो प्रोजेक्ट" का लिंक अब मर चुका है। – Sabuncu