Alignement vertical du contenu de la ligne DataGrid

J’ai un DataGrid standard de WPF 4.0 RTM, où je mets des données à partir d’une firebase database. Afin de créer un style clair et net de DataGrid, j’utilise des lignes hautes / hautes et, par défaut, DataGrid aligne le contenu des lignes en position verticale supérieure, mais je veux définir un alignement vertical central.

J’ai déjà essayé d’utiliser cette propriété

VerticalAlignment="Center" 

dans les options DataGrid, mais cela ne m’aide pas.

Voici un exemple de code XAML décrivant mon DataGrid sans alignement vertical central:

         

Résultat de l’exécution de ce code:

texte alt

Comme vous pouvez le voir, le contenu de toutes les lignes a un alignement vertical supérieur.

Que dois-je append pour obtenir l’alignement vertical central de chaque contenu de ligne?

Merci.

Solution complète de ce problème:

http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/8c2aa3b1-d967-41ab-93c2-6c8cb1b7d29d/#488d0cdd-d0c2-469a-bfb6-8ca3d75426d4

En bref, dans un ensemble de fichiers de style:

   

Dans le fichier de la fenêtre:

         

Cela vous donnera un résultat recherché:

texte alt

Pour définir des alignements de texte individuels, vous pouvez utiliser:

    

Le code suivant alignera verticalement le contenu d’une cellule DataGridTextColumn:

    

Edit: Je suis revenu sur ce problème et j’ai trouvé que la solution ci-dessous fonctionnait mieux, elle centrerait le contenu de toutes les cellules de DataGridTextRows à la fois horizontalement et verticalement.

      

Vous pouvez également faire sans modifier le ControlTemplate:

   

Celui-ci travaille pour moi

     

La valeur d’atsortingbut VerticalAlignment="Center" centre le DataGrid dans son élément parent.

Vous voulez probablement VerticalContentAlignment .

En me basant sur la réponse de Jamier, le code suivant a fait l’affaire pour moi lors de l’utilisation de colonnes générées automatiquement:

 Style VerticalCenterStyle = new Style(); public MainWindow() { // This call is required by the designer. InitializeComponent(); VerticalCenterStyle.Setters.Add(new Setter(VerticalAlignmentProperty, VerticalAlignment.Center)); } private void DataGrid_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e) { if (e.Column is DataGridTextColumn) { ((DataGridTextColumn)e.Column).ElementStyle = VerticalCenterStyle; } }