WPF: Remova a borda pontilhada ao redor do item em foco na caixa de listagem estilizada

84

Eu tenho uma caixa de listagem horizontal com um controlIemplate personalizado. O item selecionado obtém um quadro pontilhado quando focado. Alguém sabe como se livrar disso?

Vegar
fonte

Respostas:

164

Você precisa definir FocusVisualStyle de cada ListBoxItem como null. Os passos estão abaixo

1) Crie ItemContainerStyle para o ListBox

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

2) Defina esse estilo para caixa de listagem

<ListBox ItemContainerStyle="{DynamicResource ListBoxItemStyle1}"
Jobi Joy
fonte
5
Esta resposta funciona muito bem, mas grandes cabeças aqui: se você usar este método, seus controles não exibirão nenhum indicador focado no Windows 8! Com os FocusVisualStyledesativados no Windows 7, controles como os botões ainda retêm um destaque geral azul, mas no Windows 8 é completamente impossível dizer qual controle em um grupo está focado.
Evan Wondrasek
Bom saber. Nesse caso, o objetivo era remover o estilo visual de um item de lista contendo mais controles. Os controles filhos ainda terão seu estilo de foco intacto.
Vegar