WPF: Xóa đường viền chấm xung quanh mục được tiêu điểm trong hộp danh sách được tạo kiểu


84

Tôi có một hộp danh sách ngang với một controlIemplate tùy chỉnh. Mục đã chọn sẽ có một khung chấm khi được lấy tiêu điểm. Bất cứ ai biết làm thế nào để thoát khỏi nó?

Câu trả lời:


164

Bạn cần đặt FocusVisualStyle của mỗi ListBoxItem thành null. Các bước dưới đây

1) Tạo ItemContainerStyle cho ListBox

<Style x:Key="ListBoxItemStyle1" TargetType="{x:Type ListBoxItem}"> 
   <Setter Property="FocusVisualStyle" Value="{x:Null}"/> ....

2) Đặt kiểu đó thành Listbox

<ListBox ItemContainerStyle="{DynamicResource ListBoxItemStyle1}"

5
Câu trả lời này hoạt động tốt, nhưng rất lớn ở đây: Nếu bạn sử dụng phương pháp này, các điều khiển của bạn sẽ không hiển thị bất kỳ chỉ báo nào được tập trung trong Windows 8! Với việc FocusVisualStylebị vô hiệu hóa trong Windows 7, các điều khiển như Buttons vẫn giữ được điểm nhấn tổng thể màu xanh lam, nhưng trong Windows 8, hoàn toàn không thể biết điều khiển nào trong một nhóm được tập trung.
Evan Wondrasek

Tốt để biết. Trong trường hợp này, mục tiêu là xóa kiểu trực quan cho một mục danh sách chứa nhiều điều khiển hơn. Các nút điều khiển trẻ em sẽ vẫn giữ nguyên kiểu tiêu điểm.
Vegar
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.