TOC

This article is currently in the process of being translated into Vietnamese (~71% done).

Control concepts:

Access Keys

Khái niệm Khóa truy cập, đôi khi được gọi là Khóa tăng tốc hoặc Trình tăng tốc bàn phím, cho phép bạn đạt được một điều khiển cụ thể bên trong cửa sổ bằng cách nhấn và giữ phím Alt và sau đó nhấn một phím khác trên bàn phím. Điều này giúp tăng cường khả năng sử dụng các cửa sổ của bạn, bởi vì nó cho phép người dùng sử dụng bàn phím của họ để điều hướng cửa sổ, thay vì phải sử dụng chuột.

Xác định khóa truy cập

Xác định các khóa truy cập cho điều khiển WPF của bạn rất dễ dàng, nhưng phương pháp có thể làm bạn ngạc nhiên một chút. Thông thường, sẽ có một thuộc tính cho việc này, nhưng không phải cho Khóa truy cập. Thay vào đó, bạn xác định Khóa truy cập bằng cách thêm tiền tố vào chữ cái có dấu gạch dưới trong thuộc tính Văn bản/Nội dung của điều khiển. Ví dụ, như thế này:

<Button Content="_New"></Button>

Lưu ý dấu gạch dưới (_) ngay trước ký tự N - điều này sẽ biến phím N thành Khóa truy cập được chỉ định cho điều khiển Nút này. Theo mặc định, giao diện của (các) điều khiển của bạn không thay đổi, như bạn có thể thấy từ ví dụ này nơi tôi đã xác định Khóa truy cập cho tất cả các nút:

Tuy nhiên, ngay khi bạn nhấn phím Alt trên Bàn phím, các Phím truy cập khả dụng sẽ được tô sáng bằng cách gạch chân chúng:

Khi giữ phím Alt , giờ đây bạn có thể nhấn một trong các Phím truy cập (ví dụ: N, O hoặc S) để kích hoạt nút cụ thể. Nó sẽ phản ứng như thể nó được nhấp bằng chuột.

Khóa truy cập rất tốt cho các thành phần đơn lẻ trong hộp thoại/cửa sổ, nhưng chúng thậm chí còn hữu ích hơn trong trình đơn của windows truyền thống, nơi bạn thường sẽ cần phải nhấp theo cách phân cấp các mục trình đơn trước khi tiếp cận mục bạn cần. Đây là một ví dụ từ Visual Studio:

Trong trường hợp này, thay vì phải điều hướng qua trình đơn bằng nhiều lần di chuyển và nhấp chuột khi tôi muốn bắt đầu Dự án mới, tôi có thể giữ phím Alt rồi nhấn F (cho Tập tin), sau đó N (cho Mới) và sau đó P (cho Dự án ). Chắc chắn, điều này cũng có thể được thực hiện bằng phím tắt thông thường (Ctrl + Shift + N), nhưng phím tắt đó không hiển thị cho đến khi bạn đạt đến cấp độ cuối cùng của phân cấp trình đơn, vì vậy trừ khi bạn đã ghi nhớ rồi, nó có thể dễ dàng hơn để sử dụng Khóa truy cập, vì chúng được tô sáng trực quan ngay khi bạn nhấn phím Alt.

Những ký tự nào) nên được sử dụng làm Khóa truy cập?

Bạn có thể bị cám dỗ chỉ sử dụng bất kỳ ký tự nào được tìm thấy trong văn bản/nội dung điều khiển, nhưng thực sự có những hướng dẫn để chọn đúng ký tự. Tất nhiên, quy tắc quan trọng nhất là chọn một ký tự chưa được sử dụng bởi một điều khiển khác, nhưng ngoài ra, bạn nên sử dụng các nguyên tắc sau:

  • Sử dụng ký tự đầu tiên của từ đầu tiên
  • Nếu điều đó là không thể, hãy sử dụng ký tự đầu tiên của từ thứ hai hoặc thứ ba (ví dụ: A trong Lưu dưới dạng )
  • Nếu điều đó là không thể, hãy sử dụng ký tự thứ hai của từ đầu tiên (ví dụ: P trong Mở )
  • Nếu điều đó là không thể, hãy sử dụng ký tự thứ hai của từ thứ hai hoặc thứ ba (ví dụ: l trong Lưu tất cả )
  • Nói chung, bạn có thể muốn tránh các ký tự hẹp như i l và tìm các ký tự rộng hơn như m , s , w v.v.

Nối hai điều khiển lại với nhau

In the examples we have seen so far, we have been able to define the Access Key directly on the control we want to reach. But there's at least one example where this isn't directly possible: When you have an input control, e.g. a TextBox, the text that indicate its purpose doesn't exist within the actual TextBox control. Instead, you would usually use a second control to indicate, with text, the purpose of the TextBox control. This would usually be a Label control.

So, in this example, the Label control would then hold the descriptive text, and therefore also the Access Key, but the control you want to give attention to would be the TextBox control. No problem - we can use the Target property of the Label to tie it together with the TextBox (or any other control), like this:

<StackPanel Margin="20">
    <Label Content="_First name:" Target="{Binding ElementName=txtFirstName}" />
    <TextBox Name="txtFirstName" />
    <Label Content="_Last name:" Target="{Binding ElementName=txtLastName}" />
    <TextBox Name="txtLastName" />
    <Button Content="_Save" Margin="20"></Button>
</StackPanel>

Notice how the Access Key is specified for the Label controls and then tied to the relevant TextBox control using the Target property, where we use an ElementName based Binding to do the actual work. Now we can access the two TextBox controls using Alt+F and Alt+L, and the Button with Alt+S. Here's how it looks:

Summary

By using Access Keys in your windows/dialogs, you are making it much easier for people to navigate using only their keyboards. This is especially popular among power-users, who will use the keyboard in favor of the mouse as much as possible. You should always use Access Keys, especially for your menus.

This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!