如何设置UWP Toolkit DataGrid行高?尝试官方方案无效如何解决
解决方案
不生效的核心原因有两个:
- UWP Community Toolkit的DataGridRow默认设置了
MinHeight属性(默认值约32),你设置的RowHeight="12"小于默认最小高度,会被系统强制覆盖不生效。 - 模板里的TextBlock同时设置了上下Margin和上下Padding各2,合计额外占用8高度,加上10号字体本身的高度,总需求高度已经超过12,也会导致行高被撑开。
修改后的完整XAML代码如下:
<toolkit:DataGrid ItemsSource="{x:Bind TripEvents, Mode=OneWay}" x:Name="dataGridTripEvents" HeadersVisibility="Column" SelectionMode="Single" GridLinesVisibility="Horizontal" RowHeight="12"> <!-- 新增行样式覆盖默认最小高度 --> <toolkit:DataGrid.RowStyle> <Style TargetType="toolkit:DataGridRow"> <Setter Property="MinHeight" Value="12"/> </Style> </toolkit:DataGrid.RowStyle> <toolkit:DataGrid.Columns> <toolkit:DataGridTemplateColumn Header="#"> <toolkit:DataGridTemplateColumn.CellTemplate> <DataTemplate> <!-- 去掉上下Margin和Padding,避免额外占用高度 --> <TextBlock Height="12" FontSize="10" Text="{Binding NumberByOrder, Mode=OneWay}" Margin="2,0" Padding="2,0"> </TextBlock> </DataTemplate> </toolkit:DataGridTemplateColumn.CellTemplate> </toolkit:DataGridTemplateColumn> </toolkit:DataGrid.Columns> </toolkit:DataGrid>
可选调整项:如果需要保留内容上下边距,可以适当把RowHeight和MinHeight同步调到14-16区间,避免内容被截断。如果要调整列头高度,同理给DataGrid.ColumnHeaderStyle设置MinHeight和Height即可。
内容的提问来源于stack exchange,提问作者NoWar
相关产品推荐
相关产品推荐

