WPF: Видаліть пунктирну межу навколо зосередженого елемента у стилізованому списку


84

У мене є горизонтальний список зі спеціальним controlIemplate. Вибраний елемент отримує пунктирну рамку при фокусуванні. Хтось знає, як від нього позбутися?

Відповіді:


164

Вам потрібно встановити для FocusVisualStyle кожного ListBoxItem значення null. Сходи нижче

1) Створіть ItemContainerStyle для ListBox

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

2) Встановіть для цього стилю значення Список

<ListBox ItemContainerStyle="{DynamicResource ListBoxItemStyle1}"

5
Ця відповідь чудово працює, але тут дуже важко : якщо ви використовуєте цей метод, елементи керування не відображатимуть жодного індикатора, на якому зосереджено в Windows 8! За умови FocusVisualStyleвідключення в Windows 7 такі елементи керування, як Buttons, все ще зберігають загальну підсвітку синього кольору, але в Windows 8 абсолютно неможливо визначити, який елемент керування в групі фокусується.
Еван Вондрасек,

Добре знати. У цьому випадку метою було видалити візуальний стиль для елемента списку, що містить більше елементів керування. Дитячі елементи керування все ще матимуть стиль фокусу незмінним.
Vegar
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.