You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何设置UWP Toolkit DataGrid行高?尝试官方方案无效如何解决

解决方案

不生效的核心原因有两个:

  1. UWP Community Toolkit的DataGridRow默认设置了MinHeight属性(默认值约32),你设置的RowHeight="12"小于默认最小高度,会被系统强制覆盖不生效。
  2. 模板里的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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 03:48:04