What's the best way to handle the same shortcut in WPF and WinForms controls? -
मेरे पास मुख्य विंडो पर निम्न कुंजीयन के साथ एक WPF अनुप्रयोग है:
& lt; कीबिंग कमांड = "कमांड्स: एडिट कॉमांड्स। यून्डो" जेस्चर = "सीटीआरएल + जेड" / & gt; & Lt; कीबिंग कमांड = "कमांड्स: एडिट कॉमांड्स। रीडो" इशारे = "सीटीआरएल + वाई" / & gt;
यह कमान कमांड शॉर्टकट को ठीक बनाता है हालांकि, उन सभी स्थानों पर जहां मैंने WinForms टेक्स्ट बॉक्स या अमीर टेक्स्ट बक्से को एम्बेड किया है, मैंने उन शॉर्टकट का उपयोग करने की क्षमता खो दी है। यदि मैं उपरोक्त बाइंडिंग को निकालता हूं, तो WinForms शॉर्टकट्स काम ठीक कर देता है।
मैं इन WinForms और WPF दोनों में शॉर्टकट का समर्थन कैसे कर सकता हूं? मैं एक सामान्य विधि को पसंद करता हूं क्योंकि इस समस्या से कई अन्य कमांडियों को एक ही कुंजीबाइंडिंग को प्रभावित करने की संभावना है।
मुझे आश्चर्य है कि आप अंतर्निहित कमांड का उपयोग क्यों नहीं कर रहे हैं:
-
ApplicationCommands.Undo
, और -
ApplicationCommands । ( Ctrl + Z और Ctrl + वाई हो सकता है कि सभी लोकेलों में डिफ़ॉल्ट पूर्ववत / पुन: कुंजी नहीं हो) < / Li>
: बस एक- वे
TextBox
औरRichTextBox
- से सम्मानित हैं वे बिना किसी समस्या के WPF & lt; -> WinForms सीमा को पार करते हैं
- वे पहुंच-योग्यता इंटरफेस के साथ काम करते हैं
- उन कीबोर्ड पर अंतर्निहित "पूर्ववत करें" कुंजियों द्वारा लाया जाता है जिनके पास
इसलिए यदि संभव हो तो आपको इसका उपयोग करना चाहिए बस में regcode द्वारा बनाया
ApplicationCommands
कमांडबिंन्डिंग
अपने कोड में उपयुक्त स्थानों पर आइसटरिंग कर रहा है।अधिक जानकारी
यदि आप का उपयोग पूर्ववत / WPF और WinForms दोनों में दोबारा कार्यशीलता, यह सिर्फ काम करता है उदाहरण के लिए, निम्न में दो
रिच टेक्स्टबॉक्स
, एक WinForms पर आधारित और एक WPF पर बनाता है, और दोनों में पूर्ण पूर्ववत / रीडो क्षमताओं हैं:& lt; यूनिफ़ॉर्मग्रिड कॉलम = " 2 "एक्सएमएलएनएस: विन्फॉर्म्स =" सीएलआर-नेमस्पेस: सिस्टम। विन्डोज़फॉर्म; विधानसभा = सिस्टम.विंडो.फॉर्मस "& gt; & Lt; WindowsFormsHost & gt; & Lt; winforms: रिच टेक्स्टबॉक्स / & gt; & Lt; / WindowsFormsHost & gt; & Lt; RichTextBox / & gt; & Lt; / UniformGrid & gt;
चूंकि यह काम करता है और आपका नहीं है, यह जानने की कोशिश करें कि क्या अलग है। आपने अपनी टिप्पणियों में कहा था कि आपने कस्टम WPF
InputBindings
को हटाने का प्रयास किया था। क्या आपने WinForms की तरफ ही ऐसा किया है? यदि नहीं, तो कृपया इसे आज़माएं, या यदि यह संभव नहीं है तो कृपया उस कोड को भी दिखाने के लिए अपना प्रश्न संपादित करें।ध्यान दें कि आप
ApplicationCommands
को अपने खुद के < > रूट कॉमांडकमांडबंडिंग
जोड़ें और हैंडलर आग में अपनी कस्टमरूट कॉमांड
। - वे
Comments
Post a Comment