Entfernen von WPF ListView / GridView chrome markieren

8

Ich habe WPF-ListView mit GridView-Ansicht und ich möchte jede Spur von Zeile Highlight entfernen.

Dieses nützliche Stück Code kann in einer Antwort auf dieser Seite gefunden werden:

%Vor%

Diese Änderung hilft zwar dabei, den größten Teil der Hervorhebung zu entfernen, entfernt jedoch nicht den horizontalen Balken, der immer noch angezeigt wird, wenn sich die Maus über die ListView-Zeile bewegt. Wie entferne ich es?

Ich habe mich mit dem ähnlichen Problem, das Button betrifft, beschäftigt und eine Lösung gefunden, die die Button-Vorlage durch Entfernen ihres Chroms ändert.

In diesem Fall von ListView / GridView kann ich das entsprechende Chrom und Template, das geändert werden soll, nicht finden.

    
Tony 09.08.2009, 19:37
quelle

3 Antworten

14

Wenn Sie das Windows SDK installiert haben, finden Sie die XAML-Quelle für alle Standardstile (vorausgesetzt, Sie haben die Beispiele installiert) in:

  

% ProgramFiles% \ Microsoft   SDKs \ Windows \ v6.1 \ Samples \ WPFSamples.zip

Die Zip-Datei enthält einen Ordner Core, der AeroTheme, LunaTheme usw. enthält, die die Quelle für Standardstile enthalten. Leider sind diese Dateien ziemlich groß (~ 8500 Zeilen für Aero) und nicht sehr gut strukturiert oder formatiert (IMO).

Die Standardsteuervorlage für ein ListViewItem sieht folgendermaßen aus:

%Vor%

Die beste Option zum Entfernen aller Hervorhebungen ist wahrscheinlich, dass Sie das ControlTemplate durch Ihr eigenes ersetzen, das nur den GridViewRowPresenter enthält (möglicherweise in einem einzigen Border). Vergessen Sie nicht, den Auslöser einzufügen, der die Elemente grau abbildet, wenn das Steuerelement deaktiviert ist.

    
Phil Devaney 10.08.2009, 09:50
quelle
8

Ich bin nicht vor einem Windows-PC, um dies jetzt zu testen, aber ich hatte ein ähnliches Problem mit Listboxen, die ich behoben habe, indem ich Folgendes in meine Window.Resources eingefügt habe

%Vor%

Nicht sicher, ob es mit Ihrer Listview funktioniert.

    
Martin Doms 10.08.2009 02:48
quelle
0

Mit Ihrem Code sehe ich überhaupt keine Zeile. Was ist dein Standardthema? Luna, Aero usw.? Es könnte sein, dass dein anderer ist als mein, deshalb ein Unterschied in Chrom. Gibt es noch andere spezielle Einstellungen für ListView ?

Style Snooper oder Show Me Die Vorlage hilft Ihnen dabei, das visuelle Element zu finden, das für die angezeigte Linie verantwortlich ist. Sie könnten auch daran interessiert sein, erneut zu template Ihre ListView , um den gewünschten Effekt zu erzielen.

    
Joel B Fant 09.08.2009 20:24
quelle