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 に答える