29 votes

Définir un remplissage sur dataGridCells dans WPF

question simple: Comment puis-je configurer un rembourrage sur un dataGridCell dans WPF? (soit une à la fois ou sur toutes les cellules, je n'ai pas de soins)

J'ai essayé d'utiliser l' DataGrid.CellStyle de la propriété par l'ajout d'un setter de l' DataGridCell.Padding de la propriété ainsi que l'utilisation de l' DataGridColumn.CellStyle de la propriété de la même façon avec aucun effet.

J'ai aussi essayé d'utiliser le DataGridColumn.ElementStyle de la propriété avec pas plus de chance.

Je suis un peu coincé là-bas, quelqu'un a réussi à obtenir un rembourrage appliquée sur un dataGridCell?

NB: je vais ajouter que non, je ne peux pas utiliser les bordures transparentes pour ce faire, puisque je l'ai déjà utiliser les propriétés de bordure pour quelque chose d'autre. Je ne peux pas utiliser la marge de propriété (qui semble fonctionner, ce qui est assez étonnant) comme je l'ai utiliser la propriété background et je ne veux pas de "vide" de l'espace entre mes cellules.

61voto

Fredrik Hedblad Points 42772

Le problème est que le Padding n'est pas transféré vers le Border qui est dans le modèle pour DataGridCell . Vous pouvez modifier le modèle et ajouter la liaison de modèles pour Padding

 <DataGrid ...>
    <DataGrid.CellStyle>
        <Style TargetType="DataGridCell">
            <Setter Property="Padding" Value="20"/>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type DataGridCell}">
                        <Border Padding="{TemplateBinding Padding}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="True">
                            <ContentPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
                        </Border>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </DataGrid.CellStyle>
    <!--...-->
</DataGrid>
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X