2011-05-11 13 views
12

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

मैं आदर्श रूप से एप्लिकेशन स्तर पर राइट क्लिक अक्षम नहीं करना चाहता, लेकिन यदि यह संभव नहीं है, तो विंडोज़ स्तर पर राइट क्लिक अक्षम करें मेरे लिए भी काम करेगा।

उत्तर

7

आप विंडो पर OnPreviewMouseRightButtonDown को ओवरराइड कर सकते हैं और सही पर हैंडल सेट कर सकते हैं। आपको OnPreviewMouseRightButtonUp (इसे इंगित करने के लिए Vitalij के लिए धन्यवाद)

यह चाल चलाना चाहिए।

+0

क्या आप यूआई तत्वों पर OnPreviewMouseRightButtonDown को जोड़ना चाहते हैं? – Vitalij

+0

यदि आप विंडो पर OnPreviewMouseRightButtonDown को संभालते हैं, तो आप इसे किसी और के सामने संभालेंगे ... आपको हर नियंत्रण के लिए इसे संभालने की आवश्यकता नहीं है –

+0

दाएं! भूल गए कि विंडो UIElement से निकला है, इसलिए माउस की सभी घटनाएं हैं। एकमात्र चीज यह है कि आपको ऑनप्रवेव्यूउस राइटबटनडाउन और ऑनप्रवेव्यूउस राइटबटनअप दोनों को संभालने के लिए चिह्नित करना होगा। – Vitalij

21

OnPreviewMouseRightButtonDown/ऊपर दृष्टिकोण मेरे लिए काम नहीं किया।

  1. हालांकि UIElement पर Stylus.IsPressAndHoldEnabled एक संपत्ति है। प्रेस से छुटकारा पाने के लिए झूठी पर सेट करें और राइट क्लिक व्यवहार दबाएं। मैंने विंडोज 7 पर .NET 4.0 के साथ इसका परीक्षण किया, लेकिन यह संपत्ति .NET 3.0 से उपलब्ध है।

    < RepeatButton Stylus.IsPressAndHoldEnabled = "false" .../>

  2. वहाँ भी एक ऐसे ब्लॉग पोस्ट here कि प्रेस की एक ऐसी ही अक्षम करने के लिए एक कोड नमूना प्रदान करता है और खिड़की के स्तर पर पकड़ है। लेकिन इसके साथ ही, पूर्वावलोकन टचडाउन और टचडाउन घटनाएं जैसे ही उंगली स्क्रीन को छूती है (जो कि दोहराना बटन के अनुमान के लिए आवश्यक होगी), केवल बाद में ही नहीं उठाया जाएगा। this msdn page पर 'टिप्पणियां' पढ़ें।

+1

मैं पुष्टि करता हूं कि Stylus.IsPressAndHoldEnabled समाधान विंडोज 8 :-) धन्यवाद में भी काम करता है! –

+2

मुझे पता है कि यह पुराना है, लेकिन मैं यह भी पुष्टि करता हूं कि Stylus.IsPressAndHoldEnabled समाधान विंडोज 10 के लिए काम करता है। – WBuck

+0

धन्यवाद। मुझे "प्रेस और होल्ड इफेक्ट आयत" को हटाने में सक्षम होने के लिए इसका उपयोग करने की आवश्यकता थी। डब्ल्यूपीएफ के साथ टच स्क्रीन का उपयोग करने के लिए नया होने के नाते, जवाब ढूंढना मुश्किल था। – horseman1210

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