2010-07-29 26 views
8

Phải là một cách đơn giản, nhưng tôi không thể tìm ra cách thực hiện. Sử dụng WPF4 Tôi muốn Bind Ctrl +- để Zoom Out và Ctrl += để phóng to:WPF KeyGestures - Các phím không phải là chữ và số

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

Tuy nhiên, tôi nhận được lỗi: trong trường hợp Ctrl + =:

Không tìm thấy giá trị được yêu cầu '='.

Bất kỳ ý tưởng nào?

Trả lời

8

Được rồi - nó quay ra rằng chìa khóa = không tồn tại (bạn có thể kiểm tra điều này qua Key -enumeration - không có mục nhập cho Equal hoặc EqualSign) ... Tôi sử dụng một bàn phím quốc tế , do đó, bạn phải tìm chuỗi khóa nào bạn nhấn để nhập = (đối với tôi đó là Shift + D0 trên bàn phím Đan Mạch) - và sử dụng chuỗi khóa đó.

Vì vậy, XAML của bạn nên được (ở Đan Mạch):

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

EDIT: Tôi tin rằng trên một hệ thống Mỹ nó là OemPlus then chốt - nhưng bạn có thể kiểm tra nó bằng cách điều khiển-writeline'ing lập luận e.Key trong trình xử lý sự kiện từ khóa xuống)

EDIT2: - phím là OemMinus trên hệ thống của tôi.

+0

Và tôi hy vọng bạn sẽ không quốc tế hóa đơn đăng ký của bạn ... :-) – Goblin

+1

Cảm ơn! Nhìn vào sự kiện keydown là con đường để đi. Những gì tôi đang tìm kiếm là "Ctrl + OemPlus" & "Ctrl + OemMinus". Tôi sẽ lo lắng về quốc tế hóa sau! – Grokys

+0

+1 cho "bạn có thể kiểm tra bằng console-writeline'ing đối số e.Key trong trình xử lý sự kiện từ khóa" cho tôi đó là Khóa = "Thêm" –

8

Gợi ý dành cho người dùng với một Đức bàn phím (có thể một số nước khác cũng):

Các phím numpad "+" và "-" là "Add" và "Trừ"

Các bình thường phím "+" và "-" là "OemPlus" và "OemMinus"

Vì vậy

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

sẽ cháy lệnh nếu bạn nhấn "+" trên ke chính yboard.

Các vấn đề liên quan