Bonjour à tous.
Je suis entrain de développer une application qui permet d'afficher le fuselage d'un avion. Le problème est que le dessin contenue dans le canvas conserve pas du tout les bonnes proportions.
Pourriez-vous m'éclairer sur mon erreur.
Je vous en remercie par avance.
Le code vu du xaml :
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <Grid Name="rootGrid" Margin="0"> <Grid x:Name ="chartGrid" Grid.Column="0" Grid.Row="0" ClipToBounds="True" Background="Transparent" SizeChanged="chartGrid_SizeChanged" /> <Canvas x:Name="chartCanvas" MouseLeftButtonDown="OnMouseLeftButtonDown" ClipToBounds="True"> <Canvas.RenderTransform> <ScaleTransform x:Name="myScaler" ScaleX="1" ScaleY="1" CenterX="0" CenterY="0"/> </Canvas.RenderTransform> </Canvas> </Grid>
Le code de l'évènement SizeChanged :
Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 private void chartGrid_SizeChanged(object sender, SizeChangedEventArgs e) { this.chartCanvas.Width = this.chartGrid.Width; this.chartCanvas.Height = this.chartGrid.Height; }
Le code qui calcule la position du point par rapport à la taille du canvas :
Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 public Point NormalizePoint(Point pt) { Point result = new Point(); result.X = (pt.X - Xmin) * ChartCanvas.Width / (Xmax - Xmin); result.Y = ChartCanvas.Height - (pt.Y - Ymin) * ChartCanvas.Height / (Ymax - Ymin); return result; }
Partager