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.
相关产品推荐
相关产品推荐

