グリッドをスクロール可能にする必要があります。最終的に 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);
}
提案/フィードバックは大歓迎です。ありがとう!