Ich bin überrascht, dass ich diese Lösung noch nicht gepostet gesehen habe.
Aus dem Web kommend, verwenden Frameworks wie Bootstrap einen negativen Rand, um Zeilen/Spalten zurückzuziehen.
Es mag etwas ausführlich sein (wenn auch nicht so schlimm), aber es funktioniert und die Elemente sind gleichmäßig platziert und dimensioniert.
Im folgenden Beispiel verwende ich eine StackPanel
root, um zu demonstrieren, wie die 3 Schaltflächen gleichmäßig platziert sind, indem ich Ränder verwende. Sie könnten auch andere Elemente verwenden, ändern Sie einfach den inneren x:Type von Button zu Ihrem Element.
Die Idee ist einfach: Verwenden Sie ein Raster nach außen, um die Ränder der Elemente um die Hälfte der inneren Menge des Rasters hinauszuziehen (unter Verwendung negativer Ränder), und verwenden Sie das innere Raster, um die Elemente gleichmäßig mit der gewünschten Menge zu platzieren.
Update: Ein Benutzerkommentar besagt, dass es nicht funktioniert, hier ist ein kurzes Video zur Demonstration: https://youtu.be/rPx2OdtSOYI
![Die Bildbeschreibung hier eingeben]()
<Setter Property="Margin" Value="-5 0"/>
<Setter Property="Margin" Value="10 0"/>
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.