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

通过在WPF的DataGrid中使用模板列和TextBlock的TextWrapping属性,可以实现DataGrid行内容的高度自适应。具体做法是将DataGridTextColumn替换为DataGridTemplateColumn,并设置TextBlock的TextWrapping为Wrap,同时调整列的宽度。这样,内容过长的单元格会自动换行,确保行高适应内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

用模板列,设置<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>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值