WPF: Entfernen Sie den gepunkteten Rand um das fokussierte Element in der gestalteten Listbox

83

Ich habe eine horizontale Listbox mit einer benutzerdefinierten controlIemplate. Das ausgewählte Objekt erhält beim Fokussieren einen gepunkteten Rahmen. Weiß jemand, wie man es loswird?

Vegar
quelle

Antworten:

162

Sie müssen FocusVisualStyle für jedes ListBoxItem auf null setzen. Schritte sind unten

1) Erstellen Sie ItemContainerStyle für die ListBox

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

2) Setzen Sie diesen Stil auf Listbox

<ListBox ItemContainerStyle="{DynamicResource ListBoxItemStyle1}"
Jobi Joy
quelle
5
Diese Antwort funktioniert gut, aber hier oben gibt es große Probleme: Wenn Sie diese Methode verwenden, zeigen Ihre Steuerelemente keine Anzeige an, die in Windows 8 fokussiert ist! Wenn die FocusVisualStyleOption in Windows 7 deaktiviert ist, behalten Steuerelemente wie Schaltflächen immer noch ein blaues Gesamthighlight bei. In Windows 8 ist es jedoch völlig unmöglich zu erkennen, welches Steuerelement in einer Gruppe fokussiert ist.
Evan Wondrasek
Gut zu wissen. In diesem Fall bestand das Ziel darin, den visuellen Stil für ein Listenelement mit mehr Steuerelementen zu entfernen. Bei den untergeordneten Steuerelementen bleibt der Fokusstil erhalten.
Vegar