Làm cách nào để đặt thứ tự tab trong WPF? Tôi có một ItemsControl với một số mục được mở rộng và một số mục được thu gọn và tôi muốn bỏ qua các mục được thu gọn khi tôi đang tab.
Bất kỳ ý tưởng?
Làm cách nào để đặt thứ tự tab trong WPF? Tôi có một ItemsControl với một số mục được mở rộng và một số mục được thu gọn và tôi muốn bỏ qua các mục được thu gọn khi tôi đang tab.
Bất kỳ ý tưởng?
Câu trả lời:
Bạn có thể bỏ qua các phần tử trong chuỗi tab bằng cách đặt KeyboardNavigation.IsTabStop trên phần tử trong XAML.
KeyboardNavigation.IsTabStop="False"
Bạn có thể thiết lập trình kích hoạt sẽ chuyển đổi thuộc tính này dựa trên trạng thái được mở rộng.
Nếu bạn muốn đặt thứ tự tab một cách rõ ràng cho các phần tử trong biểu mẫu của mình, thuộc tính đính kèm sau đây sẽ giúp:
<Control KeyboardNavigation.TabIndex="0" ... />
Tôi nói "phải giúp" vì tôi không thấy nó đáng tin cậy lắm mặc dù có lẽ tôi cần đọc thêm về cách nó được dự định sử dụng. Tôi chỉ đăng câu trả lời nửa nướng này vì không ai khác đề cập đến tài sản này.
Lưu ý rằng trong Win RT, thuộc tính chỉ là TabIndex="0"
.
<DockPanel Panel.ZIndex="2">
giúp sắp xếp điểm vào của các bảng cấp cao nhất.
<Control KeyboardNavigation.TabIndex="0" ... />
Hoạt động hoàn toàn tốt ... Ví dụ-
<ComboBox Height="23"
Margin="148,24,78,0"
Name="comboBoxDataSet"
VerticalAlignment="Top"
SelectionChanged="comboBoxDestMarketDataSet_SelectionChanged"
DropDownOpened="comboBoxDestMarketDataSet_DropDownOpened"
KeyboardNavigation.TabIndex="0" />
<ComboBox Height="23"
Margin="148,56,78,0"
Name="comboBoxCategory"
VerticalAlignment="Top"
SelectionChanged="comboBoxDestCategory_SelectionChanged"
DropDownOpened="comboBoxDestCategory_DropDownOpened"
KeyboardNavigation.TabIndex="1" />
Sẽ cho phép bạn điều hướng qua hai hộp kết hợp này bằng phím TAB.
Một giải pháp thay thế khác đã hiệu quả với tôi trước đây là chỉ cần xóa tất cả các TabIndex
câu lệnh rõ ràng và để các điều khiển sử dụng thứ tự mà chúng được khai báo trong XAML hoạt động kỳ diệu.
Tất nhiên, điều này có thể yêu cầu bạn sắp xếp lại các điều khiển của mình. Nhưng đây là một thao tác sao chép-dán đơn giản.
Bạn có thể sử dụng KeyboardNavigation.TabNavigation = "Không" để hoàn toàn bỏ qua Tabbing để kiểm soát cụ thể.