WPF: elimine el borde punteado alrededor del elemento enfocado en el cuadro de lista con estilo

84

Tengo un cuadro de lista horizontal con un controlIemplate personalizado. El elemento seleccionado obtiene un marco de puntos cuando se enfoca. ¿Alguien sabe cómo deshacerse de él?

Vegar
fuente

Respuestas:

164

Debe establecer FocusVisualStyle de cada ListBoxItem en nulo. Los pasos están abajo

1) Crear ItemContainerStyle para ListBox

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

2) Establezca ese estilo en Listbox

<ListBox ItemContainerStyle="{DynamicResource ListBoxItemStyle1}"
Jobi Joy
fuente
5
Esta respuesta funciona muy bien, pero hay una gran advertencia aquí: si usa este método, sus controles no mostrarán ningún indicador de cuál está enfocado en Windows 8. Con los FocusVisualStyledeshabilitados en Windows 7, los controles como los botones aún conservan un resaltado general azul, pero en Windows 8 es completamente imposible saber qué control de un grupo está enfocado.
Evan Wondrasek
Bueno saber. En este caso, el objetivo era eliminar el estilo visual de un elemento de lista que contenía más controles. Los controles secundarios seguirán teniendo su estilo de enfoque intacto.
Vegar