WPF: rimuove il bordo tratteggiato attorno all'elemento attivo nella casella di riepilogo con stile


85

Ho una casella di riepilogo orizzontale con un controlIemplate personalizzato. L'elemento selezionato ottiene una cornice tratteggiata quando è a fuoco. Qualcuno sa come sbarazzarsene?

Risposte:


165

È necessario impostare FocusVisualStyle di ogni ListBoxItem su null. I passaggi sono sotto

1) Crea ItemContainerStyle per ListBox

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

2) Imposta quello stile su Listbox

<ListBox ItemContainerStyle="{DynamicResource ListBoxItemStyle1}"

5
Questa risposta funziona alla grande, ma un enorme avvertimento qui: se usi questo metodo, i tuoi controlli non mostreranno alcun indicatore di quale sia focalizzato in Windows 8! Con la FocusVisualStyledisabilitazione in Windows 7, i controlli come i pulsanti mantengono ancora un'evidenziazione generale blu, ma in Windows 8 è completamente impossibile dire quale controllo in un gruppo è focalizzato.
Evan Wondrasek,

Buono a sapersi. In questo caso l'obiettivo era rimuovere lo stile di visualizzazione per una voce di elenco contenente più controlli. I controlli figlio avranno ancora intatto lo stile di attivazione.
Vegar

Puoi anche aggiungere semplicemente il file FocusVisualStyle="{x:Null}"nella maggior parte dei casi.
Adephx
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.