ScrollViewer
とSizeChanged
イベントの関係を説明できる人はいますか? scrollViewer をグリッドの周りに配置するたびに、多数の SizeChanged イベントが発生します。二人の関係は?どうもありがとう。
編集:
mdm20 のコメントから、ScrollViewer の周りにグリッドをラップすると、グリッドの ActualWidth と ActualHeight が継続的に増加することに気付きました。なぜこれが当てはまるのか、誰でも説明できますか?グリッドの幅と高さに厳密な値を設定する必要がありますか?
編集#2:
サイズ変更は、以下に投稿されたコードによって行われます。これを調べてくれてありがとう
private void chartGrid_SizeChanged(object sender, SizeChangedEventArgs e)
{
textCanvas.Width = chartGrid.ActualWidth;
textCanvas.Height = chartGrid.ActualHeight;
legendCanvas.Children.Clear();
chartCanvas.Children.RemoveRange(1, chartCanvas.Children.Count - 1);
textCanvas.Children.RemoveRange(1, textCanvas.Children.Count - 1);
AddChart();
}
対応する XAML コードは次のとおりです。
<ScrollViewer Name="chartScrollViewer">
<Grid Margin="0" x:Name ="chartGrid" Grid.Column="1" Grid.Row="1" ClipToBounds="True" Background="Transparent" SizeChanged="chartGrid_SizeChanged">
<Canvas Margin="2" Name="textCanvas" ClipToBounds="True" Grid.Column="1" Grid.Row="1" Height="1200">
<Canvas Name="chartCanvas" ClipToBounds="True">
<Canvas Name="legendCanvas" Background="Transparent" />
</Canvas>
</Canvas>
</Grid>
</ScrollViewer>