2009-08-03 9 views
1

J'ai un DataForm Silverlight 3 qui ajoute un rembourrage impair au DataTemplate. En utilisant Silverlight Spy pour inspecter la sortie XAML, il semble qu'il existe un ContentPresenter avec une marge de 12, 12, 6, 12 qui contient alors le contenu du DataTemplate. Cela signifie qu'il y a toujours du rembourrage sous la forme qui n'est pas idéal pour ma situation.Comment supprimer le remplissage à l'intérieur d'un DataForm Silverlight?

Est-ce que quelqu'un sait comment ajuster cette marge sans créer une ressource de style et de modéliser l'ensemble du contrôle? Il ne semble pas être l'un des attributs de remplissage évidents du formulaire.

Voilà comment il regarde dans Silverlight Spy: http://i169.photobucket.com/albums/u217/troyhunt/Silverlight.png?t=1249271108

Répondre

1

je me sens sale pour le faire, mais je viens de mettre des marges négatives sur le premier élément enfant dans le groupe de données. Très inélégant, mais fait le travail à la lumière d'aucune alternative évidente.

0

Une autre façon d'utiliser un petit morceau de code consiste à utiliser l'arborescence visuelle pour trouver le ContentPresenter à définir en tant que marge.

En adaptant le code Finding Elements pour supprimer ContentElement qui ne s'applique pas à Silverlight, vous pouvez ensuite rechercher le présentateur de contenu et mettre à jour la marge, par ex.

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); 
     } 
Questions connexes