2009-08-03 7 views
1

Ich habe ein Silverlight 3 DataForm, das dem DataTemplate einige ungerade Polsterung hinzufügt. Wenn Sie Silverlight Spy zum Überprüfen der XAML-Ausgabe verwenden, sieht es so aus, als gäbe es einen ContentPresenter mit einem Rand von 12, 12, 6, 12, der dann den Inhalt des DataTemplate enthält. Das heißt, es gibt immer eine Auffüllung in der Form, die für meine Situation nicht ideal ist.Wie entfernen Sie das Padding aus einem Silverlight DataForm?

Kann jemand diesen Rand anpassen, ohne eine Stilressource zu erstellen und das gesamte Steuerelement zu templatieren? Es scheint keines der offensichtlichen Füllattribute des Formulars zu sein.

Hier ist, wie es in Silverlight Spy aussieht: http://i169.photobucket.com/albums/u217/troyhunt/Silverlight.png?t=1249271108

Antwort

1

Ich fühle mich schmutzig, es zu tun, aber ich habe gerade negative Margen auf dem ersten Kind-Elemente in der Datenform setzen. Sehr unelegant, aber die Arbeit wird ohne offensichtliche Alternativen erledigt.

0

Ein alternativer Weg mit einem kleinen Stück Code besteht darin, den visuellen Baum zu verwenden, um den ContentPresenter zu finden, um den Rand zu setzen.

Anpassung des Finding Elements-Codes, um ContentElement zu entfernen, das nicht für Silverlight gilt, können Sie dann den Inhalts-Presenter finden und den Margin z.

foreach (var match in LayoutRoot.FindChildren<ContentPresenter>()) 
     { 
      if (match.Margin.Bottom == 12 && match.Margin.Top == 12 && match.Margin.Left == 12 && match.Margin.Right == 6) 
       match.Margin = new Thickness(0); 
     } 
Verwandte Themen