2016-06-08 4 views
0

Я генерирую Datagrid и хочу центрировать контент.C# wpf Центр выравнивания содержимого Datagrid по коду

это мой код:

DataGrid tabelle = new DataGrid(); 
tabelle.ItemsSource = dt.DefaultView; 
tabelle.RowHeight = 50; 
tabelle.VerticalContentAlignment = VerticalAlignment.Center; 
tabelle.HorizontalContentAlignment = HorizontalAlignment.Center; 

Это не работает ... но почему?

+0

Что значит «не работает»? Что ты видишь вместо этого? –

+0

содержание не центрировано. Я получаю тот же результат, если удалю последние две строки – Plender

+0

Есть ли причина, по которой вы это делаете с помощью кода? в XAML у вас есть более простые в применении варианты ex. Стиль. Кроме того, я предполагаю, что u использует MVVM или MVC, поскольку у вас есть ViewModel, определенный –

ответ

0

Шаблон DataGridCell не использует свойства VerticalContentAlignment и HorizontalContentAlignment DataGrid.

Есть способы получить желаемое выравнивание. Посмотрите здесь: DataGrid row content vertical alignment

здесь это решение в коде

DataGrid tabelle = new DataGrid(); 
tabelle.ItemsSource = dt.DefaultView; 
tabelle.RowHeight = 50; 

// cell style with centered text 
var cellStyle = new Style 
       { 
        TargetType = typeof (TextBlock), 
        Setters = 
        { 
         new Setter(TextBlock.TextAlignmentProperty, TextAlignment.Center), 
         new Setter(TextBlock.VerticalAlignmentProperty, VerticalAlignment.Center), 
        } 
       }; 

// assign new style for text columns when they are created 
tabelle.AutoGeneratingColumn += (sender, e) => 
{ 
    var c = e.Column as DataGridTextColumn; 
    if (c != null) 
     c.ElementStyle = cellStyle; 
}; 
Смежные вопросы