2012-11-05 12 views
7

पर क्लिक करें मैं अपने WPF एप्लिकेशन में प्रत्येक माउस क्लिक को अवरुद्ध करने के लिए देख रहा हूं। ऐसा लगता है कि कमांड रूटिंग तंत्र के साथ यह आसान होना चाहिए, लेकिन खेद है कि मुझे कुछ भी नहीं मिला है।प्रत्येक माउस को WPF एप्लिकेशन

मेरा आवेदन कई सुरक्षा स्तर लागू करता है, और यदि कोई भी x मिनट में एप्लिकेशन (क्लिक) के साथ इंटरैक्ट करता है तो स्वचालित रूप से सबसे प्रतिबंधित स्तर पर वापस जाने की आवश्यकता होती है। मेरी योजना एक टाइमर जोड़ना है जो एक्स मिनट के बाद समाप्त हो जाती है और सुरक्षा स्तर को समायोजित करती है। एप्लिकेशन में प्रत्येक माउस क्लिक टाइमर रीसेट करेगा।

+1

मुझे लगता है कि कोई खुशी नहीं है कि वे खुशी से टाइपिंग करेंगे और उन पर एप्लिकेशन लॉक होगा क्योंकि उन्होंने माउस का उपयोग नहीं किया है? – Ian

+0

क्षमा करें, हर कोई, देरी के लिए ... इस सोमवार की सुबह काम कर रहा था लेकिन किसी और चीज़ पर खींचा गया था। त्वरित प्रतिक्रियाओं के लिए बहुत बहुत धन्यवाद, – nmarler

उत्तर

16

आप एक वर्ग हैंडलर रजिस्टर कर सकते हैं:

public partial class App : Application 
    { 
     protected override void OnStartup(StartupEventArgs e) 
     { 
      EventManager.RegisterClassHandler(typeof(Window), Window.PreviewMouseDownEvent, new MouseButtonEventHandler(OnPreviewMouseDown)); 

      base.OnStartup(e); 
     } 

     static void OnPreviewMouseDown(object sender, MouseButtonEventArgs e) 
     { 
      Trace.WriteLine("Clicked!!"); 
     } 
    } 

इस आवेदन में बनाए गए सभी विंडो पर किसी भी PreviewMouseDown घटना को संभाल लेंगे।

+0

वाह, मुझे वापस पाने के लिए मुझे काफी समय लगा लेकिन मुझे अंत में समय मिला। @baboon एक बार पंजीकरण करने और इसके बारे में भूलने के लिए महान सुझाव - यह बहुत अच्छा काम कर रहा है। धन्यवाद – nmarler

1
<Window .... PreviewMouseDown="Window_PreviewMouseDown_1"> 
</Window> 

यह आपके लिए काम करना चाहिए।

यह तब भी आग लगती है जब अन्य MouseDown घटनाएं घटकों के लिए आग लगती हैं।

टिप्पणियों में क्लेमेंस सुझाव के अनुसार, PreviewMouseDownMouseDown से बेहतर विकल्प है, क्योंकि यह सुनिश्चित करता है कि आप ईवेंट को किसी अन्य घटना में होने से बुलबुले को रोक नहीं सकते।

+2

पर जल्द ही वापस आ जाएगा [पूर्वावलोकनमाउसडाउन] (http://msdn.microsoft.com/en-us/library/system.windows.uielement.previewmousedown.aspx) होना चाहिए। – Clemens

+0

बहुत अच्छा बिंदु। :) –

+1

एक बुलबुले घटना का उपयोग करना हमेशा उसके मामले में एक बुरा विचार होगा, क्योंकि कई नियंत्रण इन घटनाओं को संभाल सकते हैं। सुरंग संस्करण (पूर्वावलोकनमाउसडाउन) का उपयोग करना एक बेहतर विचार है। संपादित करें: ओह, पर्याप्त तेज़ नहीं :) इसके अलावा, यह मुझे जाने का रास्ता लगता है :) – Sisyphe

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