2010-11-17 26 views
34

Trong tài liệu chính thức của Microsoft chỉ có một đoạn nhắc đến cách điều khiển ứng xử để bàn phím (ít nhất là những gì tôi có thể tìm):Có tham chiếu về các hành vi bàn phím mặc định cho các điều khiển Silverlight 4 không?

http://msdn.microsoft.com/en-us/library/cc189015(v=VS.95).aspx#inputting_text

Text Input và Controls

Một số điều khiển phản ứng cho các sự kiện bàn phím với cách xử lý của riêng họ. Ví dụ, TextBox là một điều khiển được thiết kế để chụp và sau đó hiển thị văn bản được nhập bằng bàn phím và sử dụng KeyUp và KeyDown trong logic riêng của nó để nắm bắt tổ hợp phím, sau đó cũng tăng sự kiện TextChanged của riêng nó nếu văn bản thực sự đã thay đổi. Bạn vẫn có thể nói chung thêm các trình xử lý cho KeyUp và KeyDown vào một TextBox, hoặc bất kỳ điều khiển liên quan nào nhằm xử lý đầu vào văn bản. Tuy nhiên, như là một phần của thiết kế dự định của nó, một điều khiển có thể không đáp ứng tất cả các giá trị khóa được hướng đến nó thông qua các sự kiện quan trọng. Hành vi cụ thể cho từng điều khiển. Ví dụ, ButtonBase (lớp cơ sở cho Button) xử lý KeyUp để nó có thể kiểm tra phím SPACEBAR hoặc ENTER, mà nó xem xét tương đương với một nút chuột trái cho mục đích nâng cao một sự kiện Click. Việc xử lý sự kiện này được thực hiện bởi ButtonBase sẽ ghi đè lên phương thức ảo OnKeyUp và trong quá trình thực hiện nó, nó đặt Handled = true. Kết quả là bất kỳ phụ huynh nào của một nút nghe cho một sự kiện quan trọng trong trường hợp của một phím dài sẽ không nhận được sự kiện đã xử lý cho các trình xử lý riêng của nó. Một ví dụ khác là TextBox. Một số phím như phím mũi tên không được coi là văn bản bởi TextBox và thay vào đó được coi là cụ thể cho hành vi giao diện người dùng kiểm soát và TextBox đánh dấu các trường hợp sự kiện này là được xử lý.

Điều khiển tùy chỉnh có thể thực hiện hành vi ghi đè tương tự của riêng chúng cho các sự kiện quan trọng bằng cách ghi đè OnKeyDown/OnKeyUp. Nếu điều khiển tùy chỉnh của bạn xử lý các phím tăng tốc cụ thể hoặc có kiểm soát hoặc tập trung hành vi tương tự với kịch bản được mô tả cho TextBox, bạn nên đặt logic này trong ghi đè OnKeyDown/OnKeyUp của riêng bạn.

Có tài liệu tham khảo hoàn chỉnh hơn ở đâu không?

Ví dụ trong một AutoCompleteBox bạn có thể điều hướng đến gợi ý cách nhấn lên/xuống và chọn một nhấn enter, vv vv

Chắc chắn phải có một cách tốt hơn vì tập trung mọi điều khiển duy nhất và nhấn mỗi phím duy nhất trên bàn phím để tìm hiểu :)

+0

Có lẽ điều này sẽ giúp .... http: // www. dummies.com/how-to/content/silverlight-4-for-dummies-cheat-sheet.html – Aeonius

Trả lời

1

Nhìn vào mã nguồn \ Reflector.

Có rất nhiều điều kỳ quặc trong việc kiểm soát xử lý văn bản, tôi nghi ngờ rằng bất kỳ ai sẽ quan tâm đến việc ghi lại điều này. Ví dụ sự kiện KeyDown của TextBox không được kích hoạt khi người dùng nhấn BackSpace khi có văn bản bên trong điều khiển, nhưng cháy khi không có văn bản, vv Cách nhanh nhất để tìm cách thức hoạt động của một thứ gì đó là đào sâu vào nguồn.

Tôi đã tìm ra một quy tắc hay: nếu vì lý do nào đó bạn cần biết cách kiểm soát một số hoạt động sẽ không lãng phí thời gian bạn cố gắng tạo mã (tái tạo) tình huống này, chỉ cần lấy Reflector và xem mã nguồn .

+0

Tôi đánh dấu đây là câu trả lời được chấp nhận cho đến nay, đây là cách mạnh mẽ nhất, nhưng tôi đã bí mật hy vọng có ít nhất một số tài liệu tham khảo có nguồn gốc từ đám đông ... :) – dain

0

Đây có phải là máy bay không người lái bạn đang tìm kiếm không?http://www.silverlight.net/archives/videos/keyboard-control

+0

Hướng dẫn này mô tả cách thêm phím tắt vào các điều khiển tùy chỉnh, nhưng những gì tôi sau là tham chiếu cho ols (và thậm chí cả những bộ công cụ Silverlight). – dain

1

Dưới đây là liên kết cho ms chính thức cắt giảm ngắn, http://support.microsoft.com/kb/126449 tThey đang được thêm vào cho Windows 8 http://www.itworld.com/software/203881/windows-8-metro-keyboard-shortcuts-and-tips hy vọng điều này giúp

+0

Điều này gần như vậy :) Tôi đoán các điều khiển Silverlight ít nhiều phải tuân thủ các nguyên tắc thiết kế của Windows vì vậy đó là suy nghĩ tốt, nhưng dường như tham chiếu này có nhiều phím tắt toàn cục hơn và chủ yếu là kết hợp chính :( – dain

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