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

WPF:如何使RowHeaderTemplate中的Expander实现顶部对齐?

解决DataGrid RowHeaderTemplate中控件顶部对齐的问题

这个问题很常见,核心原因是你的StackPanel没有填满RowHeader的整个容器空间,导致Expander的VerticalAlignment="Top"没法体现出效果。咱们可以通过这几个调整来解决:

  • 给StackPanel设置HorizontalAlignment="Stretch"和VerticalAlignment="Stretch",让它撑满RowHeader的可用区域
  • 保持Expander的VerticalAlignment="Top",这样它就会在填满的StackPanel里靠顶部显示

修改后的完整代码如下:

<DataGrid.RowHeaderTemplate>
    <DataTemplate>
        <StackPanel Background="Green" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
            <Expander Background="Yellow" VerticalAlignment="Top">
            </Expander>
        </StackPanel>
    </DataTemplate>
</DataGrid.RowHeaderTemplate>

简单解释下:

  • 默认情况下StackPanel的大小是由内部内容决定的,设置Stretch对齐后,它会自动填充整个RowHeader的容器
  • 此时Expander的VerticalAlignment="Top"就会生效,因为它现在是在一个铺满整个RowHeader高度的容器里做对齐,自然就会靠顶部显示了

内容的提问来源于stack exchange,提问作者Grzegorz G.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:10:08