2010-07-29 14 views
8

एक साधारण होना चाहिए, लेकिन मैं यह नहीं कर सकता कि इसे कैसे किया जाए। का उपयोग करते हुए WPF4 मैं बाध्य करने के लिए Ctrl +चाहते हैं - और ज़ूम आउट के लिए Ctrl += ज़ूम इन करने के लिए:WPF KeyGestures - बाध्यकारी गैर अल्फान्यूमेरिक कुंजी

<KeyBinding Command="{Binding Content.ZoomInCommand}" Gesture="Ctrl+="/> 
    <KeyBinding Command="{Binding Content.ZoomOutCommand}" Gesture="Ctrl+-"/> 

हालांकि, मैं त्रुटियों हो रही है: के मामले में Ctrl + =:

अनुरोधित मूल्य '=' नहीं मिला था।

कोई विचार?

उत्तर

8

ठीक है - यह पता चला है कि = कुंजी मौजूद नहीं है (आप Key -enumeration के माध्यम से इस जाँच कर सकते हैं - वहाँ समान या के लिए कोई प्रवेश EqualSign है) ... मैं एक अंतरराष्ट्रीय कीबोर्ड का उपयोग है, जो कुंजी अनुक्रम आप = (मेरे लिए यह शिफ्ट + एक डेनिश कीबोर्ड पर D0 है) में प्रवेश के लिए मारा लगता है तो आप के लिए - और का उपयोग करें कि कुंजी अनुक्रम।

तो अपने XAML (डेनमार्क में) होना चाहिए:

<KeyBinding Command="{Binding Content.ZoomInCommand}" Gesture="Ctrl+Shift+D0"/> 

संपादित करें: मैं एक अमेरिकी प्रणाली पर विश्वास है कि यह OemPlus कुंजी है - लेकिन आप कंसोल-writeline'ing में e.Key तर्क से यह जाँच कर सकते हैं एक कुंजी-डाउन इवेंट हैंडलर)

EDIT2: - कुंजी मेरे सिस्टम पर OemMinus है।

+0

और मुझे उम्मीद है कि आप अपने आवेदन को अंतर्राष्ट्रीयकृत नहीं करेंगे ... :-) – Goblin

+1

धन्यवाद! कीडाउन घटना में देखना रास्ता तय करना था। जो मैं खोज रहा था वह "Ctrl + OemPlus" और "Ctrl + OemMinus" था। मैं बाद में अंतर्राष्ट्रीयकरण के बारे में चिंता करूंगा! – Grokys

+0

+1 "आप इसे कंसोल-राइटलाइन द्वारा जांच सकते हैं 'एक कुंजी-डाउन इवेंट हैंडलर में e.Key तर्क' मेरे लिए यह कुंजी था =" जोड़ें " –

8

एक जर्मन कीबोर्ड (शायद कुछ अन्य देशों के साथ-साथ) के साथ उपयोगकर्ताओं के लिए सुझाव:

numpad चाबियाँ "+" और "-" कर रहे हैं "जोड़ें" और "घटाएँ"

सामान्य कुंजी "+" और "-" कर रहे हैं "OemPlus" और "OemMinus"

तो

<KeyBinding Gesture = "OemPlus" Command="myCommand" /> 

आदेश को सक्रिय कर देगा अगर आप मुख्य ke पर प्रेस "+" yboard।

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