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

XAML中Grid设置滚动条无效,如何正确添加横向纵向滚动条?

解决XAML Grid滚动条不显示的问题

嘿,刚入门XAML很容易踩这个坑!你直接在Grid上设置ScrollViewer.HorizontalScrollBarVisibility是不会生效的,因为Grid本身不是可滚动控件——它只是一个布局容器,没有内置的滚动逻辑。那个附加属性是给ScrollViewer控件用的,正确的做法是把Grid整个包裹在ScrollViewer里面。

正确的实现方式

你需要把你的Grid放在ScrollViewer标签内部,然后在ScrollViewer上设置滚动条的可见性属性,这样当Grid的内容超出ScrollViewer的显示范围时,滚动条就会自动出现了。修改后的代码如下:

<ScrollViewer HorizontalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Visible">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition/>
            <RowDefinition/>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="110"/>
            <ColumnDefinition Width="60"/>
            <ColumnDefinition Width="90"/>
            <ColumnDefinition Width="60"/>
            <ColumnDefinition Width="80"/>
            <ColumnDefinition Width="50"/>
        </Grid.ColumnDefinitions>
        
        <TextBlock Grid.Row="0" Grid.Column="0" Style="{DynamicResource Resource}" Text="{l:LocText CustomerStats_Last24Hours}"></TextBlock>
        <TextBlock Grid.Row="0" Grid.Column="1" Style="{DynamicResource Resource}" Text="{Binding CustomerSummaryStats.Last24Hours.Count}"></TextBlock>
        <TextBlock Grid.Row="0" Grid.Column="2" Style="{DynamicResource Resource}" Text="{Binding CustomerSummaryStats.Last24Hours.TotalAmount, StringFormat='{}$ {0:0,0.00}'}"></TextBlock>
        <TextBlock Grid.Row="0" Grid.Column="3" Style="{DynamicResource Resource}" Text="{Binding CustomerSummaryStats.Last24Hours.CheckCurrency}"></TextBlock>
        <TextBlock Grid.Row="0" Grid.Column="4" Style="{DynamicResource Resource}" Text="{Binding CustomerSummaryStats.Last24Hours.AverageAmount, StringFormat='{}$ {0:0,0.00}'}"></TextBlock>
        <TextBlock Grid.Row="0" Grid.Column="5" Style="{DynamicResource Resource}" Text="{Binding CustomerSummaryStats.Last24Hours.Percentage, StringFormat='{}{0:0}%'}"></TextBlock>
        
        <TextBlock Grid.Row="1" Grid.Column="0" Style="{DynamicResource Resource}" Text="{l:LocText CustomerStats_Last7Days}"></TextBlock>
        <TextBlock Grid.Row="1" Grid.Column="1" Style="{DynamicResource Resource}" Text="{Binding CustomerSummaryStats.Last7Days.Count}"></TextBlock>
        <TextBlock Grid.Row="1" Grid.Column="2" Style="{DynamicResource Resource}" Text="{Binding CustomerSummaryStats.Last7Days.TotalAmount, StringFormat='{}$ {0:0,0.00}'}"></TextBlock>
        <TextBlock Grid.Row="1" Grid.Column="3" Style="{DynamicResource Resource}" Text="{Binding CustomerSummaryStats.Last7Days.CheckCurrency}"></TextBlock>
        <TextBlock Grid.Row="1" Grid.Column="4" Style="{DynamicResource Resource}" Text="{Binding CustomerSummaryStats.Last7Days.AverageAmount, StringFormat='{}$ {0:0,0.00}'}"></TextBlock>
        <TextBlock Grid.Row="1" Grid.Column="5" Style="{DynamicResource Resource}" Text="{Binding CustomerSummaryStats.Last7Days.Percentage, StringFormat='{}{0:0}%'}"></TextBlock>
    </Grid>
</ScrollViewer>

额外提示

  • 如果滚动条还是没显示,你可以试着把窗口拉窄一点,或者给Grid设置一个固定的Width(比如Width="500"),确保它的宽度超过ScrollViewer的可用空间,这样横向滚动条就会出来了。
  • 你可以根据需求调整HorizontalScrollBarVisibility和VerticalScrollBarVisibility的值,比如设为Auto的话,只有当内容超出时才显示滚动条,更友好。

内容的提问来源于stack exchange,提问作者Nickso

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 06:26:51