2010-07-29 14 views
8

Basit bir tane olmalı, ancak nasıl yapılacağını bilemiyorum. AncakWPF KeyGestures - Alfanümerik olmayan anahtarların bağlanması

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

, ben hataları alıyorum: - Ben Ctrl + Bind istiyorum WPF4 kullanma = Ctrl Uzaklaştırma ve + Büyütmek için durumunda Ctrl + =:

istenen değeri '=' bulunamadı.

Herhangi bir fikir? Tamam

cevap

8

- bu = anahtarı yok çıkıyor (eğer Key -enumeration aracılığıyla kontrol edebilirsiniz - Eşit veya için giriş EqualSign yoktur) ... Ben uluslararası klavye kullanmak Bu yüzden, = = (benim için Shift + D0 dan bir Danca klavye) girmek için vurduğunuz anahtar dizisini bulmanız gerekir - ve bu anahtar dizisini kullanın. Ben anahtar OemPlus olan bir Amerikan sistemine inanıyoruz - ama konsola-writeline'ing e.Key argüman içinde bunu kontrol edebilirsiniz:

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

DÜZENLEME:

Yani XAML (Danimarka) olmalıdır Bir anahtar-aşağı olay işleyicisi) sistemimdeDÜZEN2: - anahtarının OemMinus anahtarını . (Belki başka ülkelerde de) bir Alman klavyesi sahip kullanıcılar için

+0

Ve umarım başvurunuzu uluslararasılaştırmayacaksınız ... :-) – Goblin

+1

Teşekkürler! Keydown etkinliğine gitmek, gitmek için bir yoldu. Aradığım şey "Ctrl + OemPlus" ve "Ctrl + OemMinus" idi. Uluslararasılaşmadan sonra endişeleneceğim! – Grokys

+0

+1 için "bir anahtar aşağı olay işleyicisinde e.Key argümanını konsol-yazar ile kontrol edebilirsiniz" benim için Anahtar = "Ekle" –

8

İpucu:

numpad anahtarları "+" ve "-" olan

normal "Çıkart" "Ekle" ve tuşları "+" ve "-" ana ke üzerinde "+" basarsanız olan "OemPlus" ve "OemMinus"

Yani

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

komutu ateş edeceği yboard.

İlgili konular