Pregunta

Puede alguien me explique la relación entre ScrollViewer y eventos SizeChanged? Cada vez que pongo un ScrollViewer alrededor de una rejilla, numerosos eventos SizeChanged es despedido. ¿Cuál es la relación entre los dos? Muchas gracias.

EDIT:

Desde el comentario de mdm20, me di cuenta de que el ActualWidth y ActualHeight de los aumentos de la red de forma continua si se envuelven alrededor de la rejilla de un ScrollViewer. ¿Puede alguien explicar por qué esto es así? ¿Es necesario tener valores duros para el ancho y la altura de la parrilla?

EDITAR # 2:

El cambio de tamaño se realiza a través de código publicado a continuación. Gracias por mirar a este

    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();
    }

correspondiente código XAML es el siguiente:

<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>
¿Fue útil?

Solución

Usted está recibiendo en un bucle. Creo que lo que está sucediendo es que cuando se cambia el tamaño del lienzo, se le solicita la rejilla de hacer un pase diseño, lo que hace que el ScrollViewer hacer un pase diseño, lo que hace que la cuadrícula para cambiar el tamaño de él que inicia el ciclo otra vez.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top