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?

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

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.