[学习笔记]WPF设置DataGrid行内容高度自适应

来源:互联网 发布:企业java编程思想 pdf 编辑:程序博客网 时间:2024/06/18 04:41

找了很多方法,进行一一试验,最后找到的方法:

用模板列,设置<textblock textwrapping=wrap>,并设定此列的宽度为 * 或固长,设置Auto就无效了(因为UI视Auto为无限长),具体如下:

原先简单的设置列名称:

<DataGrid.Columns>

 <DataGridTextColumn Header="试题编号"     Width="1*"Binding="{Binding Path=试题编号}"/>

 <DataGridTextColumn Header="科目编号"   Width="1*" Binding="{BindingPath=科目编号}"/>

 <DataGridTextColumn Header="试题内容"   Width="2*" Binding="{BindingPath=试题内容}"/>

<DataGridTextColumnHeader="试题答案"   Width="2*"Binding="{Binding Path=试题答案}"/>

</DataGrid.Columns>

增加模板列:

<DataGrid.Columns>

                <DataGridTextColumn Header="试题编号"    Width="1*" Binding="{Binding Path=试题编号}"/>

                <DataGridTextColumn Header="类型编号" Width="1*" Binding="{Binding Path=类型编号}"/>

                <DataGridTextColumn Header="科目编号"  Width="1*" Binding="{Binding Path=科目编号}"/>

                <DataGridTemplateColumn Header="试题内容" Width="2*" >

                   <DataGridTemplateColumn.CellTemplate>

                       <DataTemplate>

                           <TextBlock TextWrapping="Wrap" VerticalAlignment="Center" Text="{Binding Path=试题内容}"></TextBlock>

                       </DataTemplate>

                   </DataGridTemplateColumn.CellTemplate>

                </DataGridTemplateColumn>

                <DataGridTemplateColumn Header="试题答案" Width="2*" >

                   <DataGridTemplateColumn.CellTemplate>

                       <DataTemplate>

                           <TextBlock TextWrapping="Wrap" VerticalAlignment="Center" Text="{Binding Path=试题答案}"></TextBlock>

                       </DataTemplate>

                   </DataGridTemplateColumn.CellTemplate>

                </DataGridTemplateColumn>

            </DataGrid.Columns>

原创粉丝点击