0

我需要让我的网格可滚动。我有一个最终将保存 30-40 行数据的网格控件。我用代码动态填充/创建这些行。每次这些行在屏幕上呈现时,它们都会尝试适应我为网格设置的高度。我尝试将我的网格包装在滚动查看器中,但这没有用。我想远离列表框,因为文本会错位。这是我构建网格的 XAML 代码:

            <ScrollViewer Canvas.Left="56" Canvas.Top="354">
        <Grid x:Name="grdWeather"  Canvas.Left="56" Canvas.Top="354" Width="371" ShowGridLines="True" Background="#FFDCB3B3" ScrollViewer.VerticalScrollBarVisibility="Visible" MaxHeight="196">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="100"/>
                <ColumnDefinition Width="100"/>
                <ColumnDefinition Width="100"/>
            </Grid.ColumnDefinitions>
            </Grid>
        </ScrollViewer>

这是我创建行的代码:

                for (int t = 0; t <= 30; t++) 
            {
                RowDefinition row1 = new RowDefinition();
                grdWeather.RowDefinitions.Add(row1);

                TextBlock txtTime = new TextBlock();
                txtTime.Text = time;
                txtTime.SetValue(Grid.RowProperty, t);
                txtTime.SetValue(Grid.ColumnProperty, 0);
                txtTime.Width = 100;
                grdWeather.Children.Add(txtTime);

                TextBlock txtTemp = new TextBlock();
                txtTemp.Text = time;
                txtTemp.Width = 100;
                txtTemp.SetValue(Grid.RowProperty, t);
                txtTemp.SetValue(Grid.ColumnProperty, 1);
                grdWeather.Children.Add(txtTemp);
            }

任何建议/反馈表示赞赏。谢谢!

4

1 回答 1

1

使用 ListBox 绝对是一个更好的主意。您的代码的问题是网格上的 MaxHeight=196。删除它就可以了

于 2013-01-14T15:17:32.807 回答