2010-10-28 11 views
8

मेरे पास एक wpf विंडो में एक विंडोज़ फॉर्म है, और जब मैं विंडोज़ फॉर्म पर क्लिक करता हूं तो DragMove का उपयोग करने की कोशिश कर रहा हूं, यह एक पिक्चरबॉक्स है इसलिए मैं खिड़की को खींचने में सक्षम होना चाहता हूं तस्वीर पर क्लिक करके।डब्ल्यूपीएफ को दबाए जाने के लिए माउसडिवाइस को

मैं नीचे मेरी प्रपत्र के माउस को पकड़ने, और WPF खिड़की के mouseleftbuttondown घटना के साथ बढ़ा:

if (e.Button == MouseButtons.Left) 
{ 
    MouseDevice mouseDev = InputManager.Current.PrimaryMouseDevice; 
    MouseButtonEventArgs mouseEvent = new MouseButtonEventArgs(mouseDev, 0, MouseButton.Left) 
     { 
      RoutedEvent = MouseLeftButtonDownEvent 
     }; 
    RaiseEvent(mouseEvent); 
} 

हालांकि जब भी मैं अपने हैंडलर (या मेरे प्रपत्र के MouseMove हैंडलर) से InputManager.Current.PrimaryMouseDevice जाँच LeftButton की, राज्य "जारी" है।

ऐसा क्यों है? मैं इसे "दबाने" के लिए मजबूर करने का एक तरीका नहीं समझ सकता क्योंकि सभी गुण केवल पढ़ने के लिए हैं।

या मेरा दृष्टिकोण बस गलत है और संभव नहीं है? मैंने माउस की चाल पर अपनी खिड़की का स्थान सेट करने का भी प्रयास किया, लेकिन कुछ अजीब चीजें होती हैं जहां मेरे माउस मान पिछली स्थिति पर वापस जाते रहते हैं।

धन्यवाद!

संपादित करें: इसलिए मैं मैन्युअल रूप से विंडो स्थान समायोजित कर रहा हूं, लेकिन फिर भी उम्मीद है कि कोई मुझे यह बता सकता है कि माउसडिवाइस को विंडोज़ फॉर्म पर क्यों नहीं दबाया जाता है। "अजीब चीजें होती है ..." मेरे हिस्से पर सिर्फ एक गूंगा गलती थी, मैंने माउस चालन पर माउस निर्देशांक को रीसेट करना जारी रखा, लेकिन मुझे एहसास हुआ कि खिड़की के आगे चलने के बाद भी मेरा माउस खिड़की के सापेक्ष नहीं चलता है, दुह!

उत्तर

1

एक similar issue थोड़ी देर के लिए मुझे स्टम्प्ड: MouseButtonEventArgs की ButtonState संपत्ति है कि बटन, नहीं एक राज्य स्नैपशॉट लिया जब घटना उठाया गया था की वास्तविक समय राज्य को दर्शाता है। मुझे आश्चर्य है कि क्या यह वही है जो आपके वामबटन के राज्य तक पहुंचने के लिए सही है।

आशा इस मदद करता है,
बेन

+0

खैर नहीं काफी; चूंकि मैं + ड्रैगिंग पर क्लिक कर रहा हूं, माउसडाउन ईवेंट हिट होने पर लाइव स्टेटस को अभी भी "दबाया जाना चाहिए", हालांकि इसे दबाया नहीं जाता है। शायद इसे विंडोज़ फॉर्मों के साथ करना है। जब मैं अपने फॉर्म के बाहर क्लिक करता हूं, तो यह मुझे बताता है कि माउस दबाया जाता है, हालांकि अगर मैं फॉर्म के अंदर क्लिक करता हूं, तो ऐसा नहीं होता है। – mmod

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