2015-06-19 62 views
0

我对此很陌生。我的应用程序有一个两列DataGrid控件。都包含文本字符串。第一列文本始终适合其列,但第二列中的文本应当在达到列宽或控件宽度时进行换行。无论什么时候换行,我还想让列1的内容垂直居中。如何在.NET 4.5 DataGrid列中创建文本换行

如何获得第二列的换行和第一个的内容在换行时垂直居中?

目前我自动生成列。我尝试用生成自动不列,并使用下列内容:

 <DataGrid x:Name="LogGrid" Margin="10,10,10,0" VerticalAlignment="Top" Loaded="LogGrid_Loaded" Background="#FFB8B5A4" MinWidth="380" HorizontalAlignment="Center" CanUserReorderColumns="False" CanUserResizeColumns="False" CanUserResizeRows="False" Width="380" AutoGenerateColumns="False"> 
     <DataGrid.Columns> 
      <DataGridTextColumn x:Name="TimeColumn" Header="Time" IsReadOnly="True" SortDirection="Ascending" Width="55"/> 
      <DataGridTextColumn x:Name="LogEntryColumn" Header="Log Entry" CanUserSort="False" Width="325"> 
       <DataGridTextColumn.ElementStyle> 
        <Style TargetType="{x:Type TextBlock}"> 
         <Setter Property="TextBlock.TextWrapping" Value="Wrap"/> 
        </Style> 
       </DataGridTextColumn.ElementStyle> 
      </DataGridTextColumn> 
     </DataGrid.Columns> 
    </DataGrid> 

结果是文字环绕没有工作,我的数据没有被转移到控件的列(我不使用数据绑定的我还不明白)。我无法弄清楚如何使数据显示在手动定义的列中。这会迫使我使用数据绑定?

所以我放弃了这种方法,正在等待帮助。

谢谢。

回答

1

右键点击 “编辑列” 您DataGridView,选择您的专栏,展开 “DefaultCellStyle”,并设置 “WrapMode”= TRUE

+0

alyBaba726嗨。不明白。我有一个DataGrid不是DataGridView。 –

+0

我应该补充说这些列是自动生成的。 –

+0

@ G.M。 ,抱歉误读。也许你可以设置你的列到指定的高度/宽度。我会建议数据绑定,但我不知道你的项目的范围。 – alybaba726