दिलचस्प पोस्ट
MySQL क्वेरी – आज और अंतिम 30 दिनों के बीच रिकॉर्ड जावा: एक सरणी में एक फाइल पढ़ना बिना सीएक्स उपयोग और रैम उपयोग कैसे करें? Android Google Analytics रेफ़रलकर्ता टैग प्राप्त करें मौजूदा XCode प्रोजेक्ट के साथ गिट का उपयोग करना क्या आप सेटिंग में सेटिंग्स बना सकते हैं.बंडल डिफ़ॉल्ट भी अगर आप सेटिंग ऐप नहीं खोलते हैं मैं एक बोली स्क्रिप्ट में संख्या कैसे जोड़ सकता हूँ यादृच्छिक "तत्व अब DOM से जुड़ा नहीं है" StaleElementReferenceException अपाचे httpd (MAMP) में http फ़ाइल कैशिंग को कैसे रोकें JqGrid स्तंभ हेडर फिल्टर और उन्नत फ़िल्टरिंग संवाद पर दो संबंधित प्रश्न सीतनिद्रा में झरना और उलटा बीच में अंतर क्या है, वे किस लिए उपयोग किया जाता है? org.glassfish.jersey.servlet.ServletContainer क्लास नोटफ़ाउंड अपवाद जेपीए के साथ आरक्षित शब्द नाम के साथ फ़ील्ड बनाना प्रदर्शन को नीचा दिखाने से पहले एक MySQL डाटाबेस कितना बड़ा हो सकता है एसडीके के माध्यम से आईफोन वाईफाई सूचना तक पहुंच

WPF में कीबोर्ड शॉर्टकट

मैं & के बजाय _ का उपयोग करने के बारे में जानता हूं, जो मैं देख रहा हूं वह सभी Ctrl + टाइप शॉर्टकट है I

पूर्ववत करने के लिए Ctrl + Z , आदि को बचाने के लिए Ctrl + S

क्या इन्हें WPF अनुप्रयोगों में लागू करने के लिए एक 'मानक' तरीका है? या यह स्वयं का रोल करने का मामला है और जो भी कमांड / नियंत्रण के लिए उन्हें तार करता है?

वेब के समाधान से एकत्रित समाधान "WPF में कीबोर्ड शॉर्टकट"

मैं मानक तरीके को समझता हूं कि कमांड बनाकर और फिर अपनी शॉर्टकट कुंजियां उन्हें इनपुट इनस्टेक्स्टर्स के रूप में जोड़ते हैं। यह शॉर्टकट कुंजियों को काम करने में सक्षम बनाता है, भले ही वे किसी भी नियंत्रण के ऊपर नहीं झुका रहे हों और चूंकि मेनू आइटम कीबोर्ड इशारों को समझते हैं, वे मेनू आइटम टेक्स्ट में आपकी शॉर्टकट कुंजी को स्वचालित रूप से प्रदर्शित करेंगे, यदि आप अपने मेनू आइटम तक कमांड को हुक कर देते हैं।

ए। कमांड को पकड़ने के लिए स्थैतिक विशेषता बनाएं (अधिमानतः आपको कमांड के लिए बनायी गयी स्थैतिक कक्षा में संपत्ति के रूप में – लेकिन साधारण उदाहरण के लिए, बस खिड़की। सीसी में स्थिर विशेषता का उपयोग करना):

public static RoutedCommand MyCommand = new RoutedCommand( ); 

बी शॉर्टकट की कुंजी जोड़ें जो कि विधि को लागू करें:

 MyCommand.InputGestures.Add( new KeyGesture( Key.S , ModifierKeys.Control )); 

सी कमान बाइंडिंग बनाएँ जो कि आपकी विधि को निष्पादित करने के लिए कॉल करने के लिए इंगित करता है, इन्हें UI तत्व के लिए कमांड बाइंडिंग में डाल दें, जिसके तहत इसे (जैसे, विंडो) और विधि के लिए काम करना चाहिए:

 <Window.CommandBindings> <CommandBinding Command="{x:Static local:MyWindow.MyCommand}" Executed="MyCommandExecuted"/> </Window.CommandBindings> private void MyCommandExecuted( object sender, ExecutedRoutedEventArgs e ) { ... } 

मैंने इसे WPF में कुंजी बाध्यकारी से संबंधित के लिए देख रहा था।

 <Window.InputBindings> <KeyBinding Modifiers="Control" Key="N" Command="{Binding CreateCustomerCommand}" /> </Window.InputBindings> 

http://joyfulwpf.blogspot.com/2009/05/mvvm-commandreference-and-keybinding.html

इस कोड को आज़माएं …

पहले एक रूटिंग कॉमांड ऑब्जेक्ट बनाएं

  RoutedCommand newCmd = new RoutedCommand(); newCmd.InputGestures.Add(new KeyGesture(Key.N, ModifierKeys.Control)); CommandBindings.Add(new CommandBinding(newCmd, btnNew_Click)); 

यह उस पर निर्भर करता है कि आप उन लोगों का उपयोग कैसे करना चाहते हैं TextBoxBase व्युत्पन्न नियंत्रण पहले से ही उन शॉर्टकटों को लागू करते हैं यदि आप कस्टम कीबोर्ड शॉर्टकट का उपयोग करना चाहते हैं तो आपको कमानों और इनपुट इशारों पर एक नज़र रखना चाहिए। यहां कोड पर स्विच करें का छोटा ट्यूटोरियल है: WPF ट्यूटोरियल – कमान बाइंडिंग और कस्टम कमांड

उम्मीद है की यह मदद करेगा।

VB.Net:

 Public Shared SaveCommand_AltS As New RoutedCommand 

भरी हुई घटना के अंदर:

 SaveCommand_AltS.InputGestures.Add(New KeyGesture(Key.S, ModifierKeys.Control)) Me.CommandBindings.Add(New CommandBinding(SaveCommand_AltS, AddressOf Me.save)) 

कोई ज़ामल आवश्यक नहीं है

उम्मीद है की यह मदद करेगा।

दूसरों के लिए यह उत्तर दस्तावेजीकरण के रूप में, ऐसा करने का एक बहुत ही सरल तरीका है जो शायद ही संदर्भित होता है, और सभी को एक्सएएमएल को छूने की आवश्यकता नहीं होती है।

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

आप अपने स्वयं के त्वरित कीबोर्ड शॉर्टकट के साथ आने के लिए इस पैटर्न का उपयोग कर सकते हैं।

 public YourWindow() //inside any WPF Window constructor { ... //add this one statement to bind a new keyboard command shortcut InputBindings.Add(new KeyBinding( //add a new key-binding, and pass in your command object instance which contains the Execute method which WPF will execute new WindowCommand(this) { ExecuteDelegate = TogglePause //REPLACE TogglePause with your method delegate }, new KeyGesture(Key.P, ModifierKeys.Control))); ... } 

एक सरल विंडो कॉमांड क्लास बनाएँ जो उस पर सेट किए गए किसी भी विधि को बंद करने के लिए निष्पादन प्रतिनिधि को लेता है।

 public class WindowCommand : ICommand { private MainWindow _window; //Set this delegate when you initialize a new object. This is the method the command will execute. You can also change this delegate type if you need to. public Action ExecuteDelegate { get; set; } //You don't have to add a parameter that takes a constructor. I've just added one in case I need access to the window directly. public WindowCommand(MainWindow window) { _window = window; } //always called before executing the command, mine just always returns true public bool CanExecute(object parameter) { return true; //mine always returns true, yours can use a new CanExecute delegate, or add custom logic to this method instead. } public event EventHandler CanExecuteChanged; //i'm not using this, but it's required by the interface //the important method that executes the actual command logic public void Execute(object parameter) { if (ExecuteDelegate != null) { ExecuteDelegate(); } else { throw new InvalidOperationException(); } } } 

कैसे MenuItem साथ कमांड को संबद्ध करने के लिए:

 <MenuItem Header="My command" Command="{x:Static local:MyWindow.MyCommand}"/>