Hello les gens ^^

Je n'arrive pas à zoomer et dézoomer sur la position de mon pointeur, j'ai essayer plusieurs méthodes mais aucunes n'a fonctionnée ..

Le besoin est lorsque j'effectue un coup de roulette dans mon canvas, ma ViewBox (contenue dans un ScrollViewer) s'ajuste afin de se centrer sur le pointeur et l'inverse lorsque je met un coup de roulette dans l'autre sens. A savoir que mon zoom fonctionne très bien sinon ^^ .


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
private void WorkSpace_PreviewMouseWheel(object sender, MouseWheelEventArgs e)
        {
            //Récupération  position souris
            lastMousePos = Mouse.GetPosition(MyCanvas);
            // Sauvegarde position souris actuelle
            lastMousePos.X = lastMousePos.X - scrViewer.HorizontalOffset;
            lastMousePos.Y = lastMousePos.Y - scrViewer.VerticalOffset;
            // Application du zoom
            if (e.Delta > 0)
            {
                double Zoom = ZoomSlider.Value;
                double CenterX = this.ActualWidth / 2; //Centre du canvas en X
                double CenterY = this.ActualHeight / 2; //Centre du canvas en Y
                scrViewer.ScrollToHorizontalOffset(lastMousePos.X + CenterX);
                scrViewer.ScrollToVerticalOffset(lastMousePos.Y + CenterY);
 
                //double scrV_H = double.Parse(scrViewer.HorizontalAlignment.ToString());
                //double scrV_V = double.Parse(scrViewer.VerticalAlignment.ToString());
                ZoomSlider.Value *= PasZoom;// += OFFSET_ZOOM;
                //scrViewer.HorizontalContentAlignment = CenterX - lastMousePos.X;
                //scrViewer.Height = CenterY - lastMousePos.Y;
                //scrViewer.HorizontalAlignment = lastMousePos.X;
                //scrViewer.VerticalAlignment = lastMousePos.Y;
            }
            else
            {
                ZoomSlider.Value /= PasZoom;//-= OFFSET_ZOOM;
            }
        }
Please Help