2012-05-04 28 views
7

Tôi đang cố gắng tạo một phím nóng (tức là Ctrl + Y) sẽ thay đổi tiêu điểm thành một hộp văn bản.Tạo một "phím nóng" để tập trung một TextBox trong WPF

Tôi là ghép từ Delphi và điều này khiến tôi khó hiểu. Trong Delphi 5 này là như vậy, vì vậy dễ dàng. (Trên chú thích của nhãn, bạn chỉ có thể thêm & trước chữ cái bạn muốn tạo khóa nóng. Sau khi bạn trỏ nhãn vào Hộp văn bản, phím nóng sẽ hoạt động.)

Đối với WPF, tôi thấy các ví dụ kinh khủng trong WPF liên quan đến việc gọi ra Win32 cuộc gọi hoặc thực hiện một lệnh cho mỗi phím nóng (và triển khai nặng khác như vậy).

Tôi thấy khó tin rằng phiên bản IDE và Languange mới trong (Delphi 5) có hệ thống tốt hơn (WPF) cho một cái gì đó đơn giản như Hotkeys.

Chắc chắn tôi đang thiếu điều gì đó. Nếu bạn biết, hãy cho tôi biết nó là gì.

+0

có thể chủ đề này là hữu ích cho bạn http://stackoverflow.com/questions/1361350/keyboard-shortcuts-in-wpf – Habib

+0

@ Habib.OSU - Nó có vẻ như bạn có thể sử dụng _ thay vì một &. Nhưng làm thế nào để bạn kết nối nhãn với TextBox? (Và tôi đã thử đặt dấu gạch dưới trong nhãn của mình và nó chỉ in dấu _). (Phần còn lại của câu hỏi có vẻ như thảo luận về việc sử dụng lệnh cho các phím nóng. Tôi muốn tránh điều đó nếu tôi có thể (tôi sẽ có rất nhiều điều khiển và kết nối tất cả các lệnh với vẻ như quá mức.)) – Vaccano

+0

@ Habib.OSU - Tôi tìm thấy câu trả lời tôi đang tìm kiếm. Nếu bạn quan tâm, bạn có thể xem nó được đăng bên dưới. – Vaccano

Trả lời

13

Vì vậy, tôi nên tiếp tục chăm chỉ hơn. Tôi đã nhận nó ngay sau khi hỏi câu hỏi này.

Họ cách bạn làm điều này là bạn nên tạo một nhãn và thiết lập nội dung của nó (cái gì đó như Content="_Years Of Service" này)

Bạn sau đó ràng buộc mục tiêu của Label để một hộp văn bản. (Target="{Binding ElementName=SomeTextBox}")

Bây giờ, nếu bạn nhấn Alt + Y, nó sẽ di chuyển tiêu điểm đến SomeTextBox.

Đây là đầy đủ ràng buộc:

<Label Content="_Label" Target="{Binding ElementName=SomeTextBox}" /> 
<TextBox Name="SomeTextBox" /> 
+0

+1 tốt nhất @Vaccano – Habib

+5

Ngoại trừ việc nếu bạn đang gán chuỗi từ mã, sử dụng 'SomeLabel.Content =" _Label ";', gạch dưới sẽ được hiển thị dưới dạng. Mã đúng là một cái gì đó như 'SomeLabel.Content = new AccessText {Text =" _Label "};' –

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