MAUI(.NET7)中SfDataGrid与StackLayout内容重叠问题咨询
解决SfDataGrid与StackLayout内容重叠问题
问题根源
你当前的Grid没有定义行布局规则,SfDataGrid会默认占据Grid的所有可用空间,而StackLayout指定的Grid.Row="3"在无行定义的情况下,实际位置会和表格区域重叠,导致控件覆盖表格内容。
修复方案
给Grid添加明确的RowDefinitions划分区域,同时给SfDataGrid指定对应的行位置,确保两者各占独立空间:
<Grid> <!-- 定义行规则:第一行用*占满剩余空间,第二行用Auto自适应控件高度 --> <Grid.RowDefinitions> <RowDefinition Height="*" /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <!-- 表格放在第0行,占据上方所有可用空间 --> <syncfusion:SfDataGrid Grid.Row="0"> <syncfusion:SfDataGrid.Columns> <!-- 你的列定义内容 --> </syncfusion:SfDataGrid.Columns> </syncfusion:SfDataGrid> <!-- 底部筛选控件放在第1行,自适应自身高度 --> <StackLayout Grid.Row="1" Grid.Column="0"> <!-- 你的下拉框、筛选控件内容 --> </StackLayout> </Grid>
关键说明
RowDefinitions中的*代表占用Grid剩余的全部空间,适合表格这类需要滚动展示的内容;Auto代表根据内部控件高度自动调整,适合底部固定的筛选栏。- 给SfDataGrid加上
Grid.Row="0",明确它只占据第一行区域,不会和底部的StackLayout(Grid.Row="1")产生重叠。 - 如果需要更复杂的布局(比如中间还有其他元素),可以继续添加
RowDefinition,调整Height属性(比如固定高度Height="100")来适配需求。
内容的提问来源于stack exchange,提问作者Adam Gong
相关产品推荐
相关产品推荐

