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;
}
} |
Partager