2010-09-06 3 views
7

Мне было интересно, есть ли у кого-нибудь простой способ получить текст в сетке данных WPF, чтобы выровнять по центру. Я получил сетку данных, чтобы работать нормально, но правильное выравнивание текста беспокоило меня. Я изучил некоторые и загрузил wpftoolkit, но примеры либо не работают, либо дают мне ошибку компиляции. Я добавил ссылку на wpftoolkit в свой проект. Любая помощь будет оценена по достоинству. СпасибоDatagrid выравнивание текста

XAML для сетки данных выглядит следующим образом

<WpfToolkit:DataGrid AutoGenerateColumns="True" Margin="15,15,10,65" Name="DG1" CanUserReorderColumns="False" /> 

ответ

17

Если установить Block.TextAlignment свойство Center на DataGrid, он будет наследоваться TextBlocks и TextBoxes, используемых в DataGridTextColumns и отцентрировать текст:

<WpfToolkit:DataGrid 
    Block.TextAlignment="Center" 
    AutoGenerateColumns="True" 
    Margin="15,15,10,65" 
    Name="DG1" 
    CanUserReorderColumns="False" /> 

Если вы хотите, чтобы выровнять текст в ячейках, но не в заголовках или в другом месте в сетке, вы можете установить свойство на DataGridCell с помощью CellStyle:

<WpfToolkit:DataGrid 
    AutoGenerateColumns="True" 
    Margin="15,15,10,65" 
    Name="DG1" 
    CanUserReorderColumns="False"> 
    <WpfToolkit:DataGrid.CellStyle> 
     <Style TargetType="WpfToolkit:DataGridCell"> 
      <Setter Property="Block.TextAlignment" Value="Center"/> 
     </Style> 
    </WpfToolkit:DataGrid.CellStyle> 
+0

Отлично! Это, наконец, сработало! Большое спасибо. –

+0

это помогло мне спасибо! Я использовал Control.HorizontalAlignment x_x –

+4

Если вы хотите получить более мелкозернистый, вы также можете установить свойство ElementStyle в отдельных столбцах. Вероятно, вы захотите использовать BasedOn = "{x: Static DataGridTextColumn.DefaultElementStyle}" в этом случае. – Cheetah