Ich bin kürzlich auf dieses Problem gestoßen, während ich einige Software entwickelte, und es fiel mir ein, zu fragen WARUM? Warum haben sie das getan...die Antwort war direkt vor mir. Eine Datenzeile ist ein Objekt, also wenn wir die Objektorientierung beibehalten, sollte das Design für eine bestimmte Zeile getrennt sein (stellen Sie sich vor, Sie müssen die Zeilenanzeige später in der Zukunft wiederverwenden). Also begann ich, datengebundene Stapel und benutzerdefinierte Steuerelemente für die meisten Datenanzeigen zu verwenden. Listen sind gelegentlich aufgetreten, aber meistens wurde das Raster nur für die primäre Seitenaufteilung verwendet (Header, Menübereich, Inhaltsbereich, andere Bereiche). Ihre benutzerdefinierten Objekte können problemlos alle Abstandsanforderungen für jede Zeile im Stapel oder Gitter verwalten (eine einzelne Gitterzelle kann das gesamte Zeilenobjekt enthalten. Dies hat auch den zusätzlichen Vorteil, richtig auf Änderungen in der Ausrichtung, Erweiterungen/Komprimierungen usw. zu reagieren.
oder
Ihre benutzerdefinierten Steuerelemente erben auch den DataContext, wenn Sie Datenbindung verwenden...mein persönlicher Lieblingsvorteil dieses Ansatzes.
4 Stimmen
Ein nützliches Beispiel findest du hier: codeproject.com/Articles/107468/WPF-Padded-Grid
7 Stimmen
Ziemlich verwirrt, dass dies nicht Teil der Grundfunktionen des Grids ist...
2 Stimmen
Bis heute, wie von 10 Jahren Antworten gezeigt, ist die Wahrheit, dass es nicht einfach möglich ist, und das Beste, was getan werden kann (um zusätzliche fehleranfällige Arbeit jedes Mal zu vermeiden, wenn eine Zelle verwendet wird), ist es, Grid abzuleiten (wie bereits von @peter70 vorgeschlagen), um die entsprechende Zell-Padding-Abhängigkeitseigenschaft hinzuzufügen, die die Margin-Eigenschaft des Zellen-Kindes steuert. Dies ist keine lange Aufgabe, und dann haben Sie eine wiederverwendbare Steuerung. Nebenbemerkung... Grid ist wirklich eine schlecht gestaltete Steuerung.