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?

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

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.