2017-03-16 3 views
1

Existe-t-il un moyen d'ajouter un remplissage réel aux cellules de la table migradoc? Les options qu'ils ont actuellement (LeftPadding et RightPadding) fonctionnent comme des marges et ne sont pas comme du padding. Et si vous l'utilisez, il pousse aussi la couleur d'arrière-plan au lieu de pousser uniquement le contenu.Rembourrage de cellule réelle Migradoc

C'est ce qui se passe lorsque vous ajoutez « padding » à la ligne entière ou des cellules individuelles (ajouté à la première rangée):

enter image description here

Par défaut, il ressemble à ceci:

Si vous souhaitez supprimer l'espace blanc entre les colonnes, il semble que vous deviez le faire en définissant ces propriétés de remplissage à 0, puis vous obtenez ceci:

enter image description here

..which est presque ce que je veux, mais je veux pousser le contenu de la cellule un peu à vers le centre de la cellule de 4 côtés pour qu'il ressemble à cela et a un peu chambre à « respirer »:

enter image description here

Il était même asked on their forums il y a longtemps pour savoir si cela pourrait se faire, mais la réponse ne résout pas le problème du tout. Il mentionne simplement les propriétés de remplissage qui fonctionnent exactement à l'opposé de ce que l'OP de ce thread a demandé (ce qui est la même chose que je veux faire). J'utilise PDFsharp-MigraDoc-gdi v1.50.4000-beta3b paquet nuget.

Des façons de contourner ce comportement étrange? Merci.

EDIT: mis à jour avec un morceau de code que j'utilise et avec peu ajouté recommandé par PdfSharp Novice

var table = new Table(); 
var columnCount = 4; 

for (int i = 0; i < columnCount; i++) 
{ 
    table.AddColumn(); 
} 

var hedingRow= table.AddRow(); 
hedingRow.Format.Font.Bold = true; 
hedingRow.Format.Font.Color = Color.Parse("0xFFFFFFFF"); 
hedingRow.Format.Shading.Color = Color.Parse("0xFF005aa0"); 
hedingRow.HeadingFormat = true; 
hedingRow.Cells[0].AddParagraph("Field"); 
hedingRow.Cells[1].AddParagraph("Type"); 
hedingRow.Cells[2].AddParagraph("Default"); 
hedingRow.Cells[3].AddParagraph(String.Empty); 

// Doesn't work as I would assume it should based on PDFsharp Novice 
hedingRow.Cells[0].Format.LeftIndent = 4; 
hedingRow.Cells[0].Format.RightIndent = 4; 
hedingRow.Cells[0].Format.Shading.Color = Color.Parse("0xFF005aa0"); 

Répondre

3

Vous pouvez définir la couleur d'arrière-plan pour la cellule et/ou pour le texte dans la cellule.

Si vous définissez la couleur de la cellule, celle-ci aura également la couleur.

Si vous ne définissez que la couleur du texte, la zone rembourrée n'aura pas de couleur.

+0

Salut, merci pour la réponse rapide, je vais l'essayer maintenant – pootzko

+0

J'ai essayé ce que vous avez suggéré, mais je ne reçois toujours pas le résultat souhaité. J'ai mis à jour ma question avec un échantillon de code, pourriez-vous s'il vous plaît me dire ce que je fais mal? Merci. – pootzko

+0

Sautez le 'Format' - qui s'applique au texte. Essayez 'hedingRow.Shading.Color = Color.Parse (" 0xFF005aa0 ");' ou 'hedingRow.Cells [0] .Shading.Color = Color.Parse (" 0xFF005aa0 ");' pour définir la couleur de la ligne ou du cellule (y compris le rembourrage). –