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?

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}"

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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.