‫ยินดีต้อนรับกลับ.
‫ในวิดีโอนี้ เราจะพูดถึงเหตุการณ์ใน Zemo
‫และมีบางสิ่งที่เรียกว่าเหตุการณ์ที่ถูกรูทหรือเหตุการณ์ที่เรียกว่าเหตุการณ์ที่ถูกรูท
‫และมีเหตุการณ์ที่รูทเหตุการณ์โดยตรงสามประเภท เหตุการณ์ที่เดือดปุดๆ และเหตุการณ์ทันเนล
‫เราได้เห็นเหตุการณ์โดยตรงแล้ว เรามาสร้างเหตุการณ์นั้นกันอีกครั้ง
‫ดังนั้น ฉันจะไปต่อและสร้างปุ่มที่นี่ และปุ่มนี้จะมีเนื้อหาของ Click Me แบบพื้นฐานมาก
‫จากนั้นจะมีเหตุการณ์การคลิก และฉันจะสร้างตัวจัดการเหตุการณ์ใหม่ที่นี่
‫ประมาณนั้นครับ
‫และบางทีเราควรสร้างความกว้าง 150 และความสูง เช่น 100
‫ดังนั้นจึงเป็นปุ่มขนาดใหญ่พอสมควรที่นี่
‫และตอนนี้ปุ่มนี้มีเหตุการณ์การคลิก
‫ตอนนี้เหตุการณ์คลิกเป็นเหตุการณ์โดยตรง
‫ลองมาดูที่นี่
‫เราจะเห็นว่าวิธีการใหม่ถูกสร้างขึ้นสำหรับเรา
‫มันเป็นโมฆะส่วนตัวปุ่มคลิกเมธอดศูนย์วัตถุกำหนดเส้นทางเหตุการณ์ arx e
‫ดังนั้นจึงต้องการผู้ส่งซึ่งเป็นวัตถุที่ส่งเหตุการณ์นี้
‫และนี่คือปุ่มของเรา
‫ดังนั้นปุ่มอ็อบเจ็กต์จะส่งเหตุการณ์นี้และเราสามารถดำเนินการต่อและใช้ปุ่มนั้นได้
‫และมีสามเหตุการณ์ดังที่ฉันได้กล่าวไปแล้วว่าเหตุการณ์รูทหรือรูทที่เหตุการณ์นั้นเป็นเหตุการณ์
‫จากนั้นมีเหตุการณ์โดยตรงซึ่งเป็นเหตุการณ์รูทและนั่นคือเหตุการณ์การคลิกของเรา
‫เราจะตรวจสอบในอีกสักครู่
‫จากนั้นก็มีเหตุการณ์เดือดปุด ๆ และเหตุการณ์อุโมงค์
‫มาลองรันโค้ดนี้กันดู แล้วคุณจะรู้ว่าอีเวนท์โดยตรงจะเกิดอะไรขึ้น
‫และอีกอย่าง ถ้าเราต้องการดำเนินการใดๆ แน่นอนว่าเราต้องเพิ่มกล่องข้อความที่นี่เพื่อแสดงให้เห็นว่าเกิดอะไรขึ้น
‫ดังนั้นบางอย่างเช่นปุ่มถูกคลิกและบางทีเราอาจเพิ่มบางอย่างเช่นเหตุการณ์โดยตรง
‫เหตุการณ์โดยตรงดังนั้น
‫ทีนี้มาเรียกใช้อีกครั้ง
‫และคลิกที่ปุ่ม คุณจะเห็นว่ามีการคลิกปุ่มคำสั่ง และเราได้ใช้ปุ่มนั้นในวิดีโอที่แล้ว
‫และไม่มีอะไรใหม่ที่นี่
‫ถูกต้อง.
‫ดังนั้นปุ่มนี้จึงถูกเรียกโดยตรง หรือเหตุการณ์ของปุ่มนั้นถูกเรียกโดยตรงโดยคุณสมบัติ click
‫ที่นี่
‫ตอนนี้มีบางอย่างที่เรียกว่าเหตุการณ์เดือดปุด ๆ
‫สมมติว่าคุณไม่ต้องการให้กิจกรรมเริ่มต้นทันทีที่ผู้ใช้คลิกที่ปุ่ม แต่ทันทีที่คุณปล่อยสิ่งนี้ให้คลิก
‫ทันทีที่ปุ่มหรือคลิกขึ้นเพื่อให้คุณสามารถใช้บางอย่าง เช่น ปุ่มเมาส์หรือเมาส์บนนี้ จะมีบางอย่างที่เรียกว่าเมาส์ขึ้น
‫ฉันจะสร้างตัวจัดการเหตุการณ์ใหม่สำหรับสิ่งนั้น
‫ไปที่นี่และสร้างกิจกรรมใหม่นี้ซึ่งจะแสดงกล่องข้อความที่นี่ด้วย
‫และอันนี้จะบอกว่า Mouse Button ขึ้นไปเปิดตัวแล้ว
‫ดังนั้นเมื่อมีการเปิดตัวเท่านั้น เหตุการณ์นี้จะถูกทริกเกอร์
‫เหตุการณ์การเลื่อนเมาส์ปุ่มนี้จะถูกทริกเกอร์
‫เรามาเริ่มกันใหม่อีกครั้ง
‫และคลิกที่ปุ่มด้วยการคลิกซ้าย
‫ไม่มีอะไรเกิดขึ้นถ้าฉันทำอย่างนั้นด้วยการคลิกขวา แล้วจู่ๆ ก็มีบางอย่างเกิดขึ้นที่เกี่ยวข้องกับเหตุการณ์นี้ที่กำลังเดือดพล่าน
‫ดังนั้น Mouse Up จึงเป็นเหตุการณ์เดือดปุด ๆ ซึ่งหมายความว่ามันส่งเหตุการณ์นี้ไปที่ด้านบนสุดของลำดับชั้นภายในต้นไม้
‫เราได้เห็นแล้วว่าต้นไม้คืออะไร ใช่ไหม?
‫เราได้เห็นต้นไม้ที่มองเห็นในต้นไม้ตรรกะแล้ว
‫ดังนั้นในนี้จึงขึ้นไปบนต้นไม้ที่มองเห็นได้
‫และอย่างที่คุณทราบ ต้นไม้ที่มองเห็นได้เป็นมากกว่าที่เราเห็นในต้นไม้ตรรกะนี้ที่นี่
‫จึงไม่เพียงแค่หน้าต่าง กริด และปุ่มเท่านั้น แต่ยังมีอะไรอีกมากมายอยู่ระหว่างนั้น
‫ดังนั้นปุ่มนี้จึงส่งไปยังองค์ประกอบต้นไม้ต่างๆ ที่มีอยู่ทั้งหมด
‫จากนั้นจะส่งไปที่ตารางแล้วส่งไปที่หน้าต่าง
‫และถ้าไม่ได้รับการจัดการที่ใดก็จะไม่มีอะไรเกิดขึ้น
‫และนั่นคือสิ่งที่เราเพิ่งเห็น
‫ดังนั้น ถ้าผมกดเมาส์ขึ้นหรือปล่อยปุ่มเมาส์ ดังที่คุณเห็น ผมกำลังคลิกอยู่ ผมยังกดค้างอยู่
‫และเมื่อฉันปล่อยไป ก็ไม่มีอะไรเกิดขึ้น
‫และนั่นก็เกี่ยวข้องกับเหตุการณ์ที่เป็นเหตุการณ์เดือดปุด ๆ และมันก็แค่ถูกละเลย อย่างที่คุณเห็น
‫ทำงานด้วยปุ่มขวา แต่มันไม่ทำงานด้วยปุ่มซ้าย มันจึงเดือดปุด ๆ และเราจับมันได้
‫.
‫แล้วคุณจะยังจัดการกับเรื่องนี้ได้อย่างไร?
‫เพราะตอนนี้ มันใช้ไม่ได้กับปุ่มซ้าย แต่คุณต้องการให้มันทำงานด้วยปุ่มซ้าย
‫สิ่งที่คุณทำได้คือใช้เหตุการณ์อุโมงค์
‫เหตุการณ์เดือดปุด ๆ ขึ้นไปบนต้นไม้ที่มองเห็น เหตุการณ์ในอุโมงค์จะลงไปที่ต้นไม้ที่มองเห็น
‫ดังนั้น แทนที่จะใช้เมาส์ขึ้น ฉันจะใช้สิ่งที่เรียกว่าแสดงตัวอย่างเมาส์ขึ้น
‫อย่างที่คุณเห็น มีอีเวนต์แสดงตัวอย่างหลายแบบที่นี่ มากมาย
‫ตัวอย่างเช่น เมาส์ลง เมาส์ แอปพรีวิว เมาส์ ปุ่มขวา ลง ปุ่มขวาขึ้น และอื่นๆ
‫ดังนั้นฉันจะสร้างมันขึ้นมาเพื่อ
‫โดยทั่วไปแล้ว ดูตัวอย่างเมาส์ขึ้นเพื่อให้คุณเห็นว่ามันใช้งานได้
‫ไม่ว่าจะด้วยวิธีใด ฉันจะสร้างตัวจัดการเหตุการณ์ใหม่สำหรับสิ่งนั้น และฉันจะดำเนินการต่อและเพิ่มปุ่มข้อความนี้ในที่นี้
‫ซึ่งเปิดตัวแล้ว และปุ่มนี้จะเป็นกิจกรรมทันเนล
‫นั่นคือเหตุการณ์ที่เดือดปุด ๆ และตอนนี้เราอยู่ที่งานอุโมงค์
‫ทีนี้มาเริ่มกันใหม่
‫และตอนนี้เราจะคลิกซ้าย
‫และอย่างที่คุณเห็น ปุ่มเมาส์ก็ขึ้นไปเพื่อตรวจสอบ
‫ฉันจะคลิกที่มัน ถือมัน และตอนนี้ฉันกำลังปล่อย จากนั้นเหตุการณ์นี้จะถูกทริกเกอร์
‫ตอนนี้ทางซ้ายมือก็เป็นปุ่มขวาเหมือนกันและก็ใช้งานได้เช่นกัน
‫ดังนั้นสิ่งที่แสดงตัวอย่างนี้ มันส่งไปที่ปุ่มเองหรือไปทางหรือลงต้นไม้ภาพ
‫มันจึงถูกกระตุ้นทันที
‫มันเจ๋งมาก
‫หากคุณต้องการใช้ปุ่มแสดงตัวอย่างบนเมาส์ แสดงว่าคุณปลอดภัยแล้ว สมมติว่าคุณต้องการใช้ลักษณะการทำงานเฉพาะนี้เมื่อใด
‫แต่แล้วโปรดพิจารณาด้วยว่านี่ไม่ใช่แค่กรณีของปุ่ม
‫นี่คือวิธีที่ WPF จัดการกับเหตุการณ์ที่รูทโดยทั่วไป
‫ดังนั้นควรระมัดระวังและใช้อย่างถูกวิธี
‫ตอนนี้เรามาเพื่อทดสอบกัน ไปข้างหน้าและสร้างตัวอย่าง
‫เมาส์ซ้ายลง
‫และสร้างตัวจัดการใหม่
‫และตอนนี้ดูตัวอย่างเมาส์
‫เขียนลงไปหรือเขียนจริงๆ
‫เพื่อให้คุณเห็นว่ามีหลายวิธี
‫และในที่นี้ ฉันจะใช้ตัวจัดการเหตุการณ์ใหม่ด้วย
‫และตอนนี้ฉันกำลังจะปรับกล่องข้อความให้เหมาะสม
‫ดังนั้นในปุ่มซ้ายของเมาส์แสดงตัวอย่าง ฉันจะบอกว่าปุ่มเมาส์ลดลง ไม่ได้ถูกปล่อยออกมา
‫นี่คือเหตุการณ์อุโมงค์
‫ถูกต้อง.
‫และก็ไม่เป็นไร
‫และตอนนี้อีกอันหนึ่งจะเป็นอันที่จริง อันนี้คือปุ่มซ้ายของเมาส์
‫และอันนี้เป็นปุ่มเมาส์ขวา
‫ปุ่มเมาส์ขวาขึ้นไปและเป็นเหตุการณ์ทันเนล
‫และถ้าเราไปข้างหน้า เราจะเห็นว่ามีปุ่มของเรา
‫ถ้าฉันกดซ้าย ให้คลิก อย่างที่คุณเห็น มันจะถูกทริกเกอร์ทันทีที่ฉันคลิก
‫แม้ว่าฉันจะกดค้างไว้หรือหากฉันกดปุ่ม มันก็ยังถูกทริกเกอร์
‫และตอนนี้ปุ่มขวาจะทำงานก็ต่อเมื่อฉันปล่อย
‫เพื่อให้คุณเห็นว่ามีหลายวิธีในการจัดการเหตุการณ์
‫คุณยังสามารถจัดการเหตุการณ์ได้ ซึ่งก็คือถ้าเราเลื่อนเมาส์เข้าไปหรือถ้าเราเอาเมาส์ไปไว้ในปุ่มนั้น
‫แต่นั่นคือสิ่งที่เราจะจัดการในภายหลัง
‫ดังนั้น ในตอนนี้ เช่นเดียวกับการสรุปเล็กน้อย มีเหตุการณ์ที่รูทอยู่สามประเภทที่แตกต่างกันซึ่งค่อนข้างจะชี้นำเหตุการณ์ที่รูท เหตุการณ์ที่รูทที่เดือดปุด
‫ๆ และเหตุการณ์ที่รูทแบบทันเนล เหตุการณ์โดยตรง พวกเขาจัดการเหตุการณ์ด้วยตนเอง e
‫กรัม เหตุการณ์การคลิกที่เราได้เห็น
‫จากนั้นเหตุการณ์ที่เดือดปุด ๆ ก็ส่งมันขึ้นไปที่วิชวลทรี และเหตุการณ์การทันเนลก็ส่งมันลงไปที่วิชวลทรี